Skip to content

Commit

Permalink
Preserve the alpha for VD content by setting a transparent background. (
Browse files Browse the repository at this point in the history
flutter#9849)

The previous attempt to do this by setting the theme to
Theme_Translucent_NoTitleBar was reported to offsetting touch events on
specific Xiaomi devices.
  • Loading branch information
amirh authored Jul 16, 2019
1 parent a3926a3 commit 7ae3c3e
Showing 1 changed file with 5 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import android.content.Context;
import android.content.ContextWrapper;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
Expand Down Expand Up @@ -96,11 +97,7 @@ public SingleViewPresentation(
Object createParams,
OnFocusChangeListener focusChangeListener
) {
// By default alpha is not preserved for the VD's contents.
// We make the window translucent as a side effect of doing so is preserving alpha.
// There should not be extra performance cost for setting the window to be translucent as
// there is only a single window within the VD.
super(outerContext, display, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
super(outerContext, display);
this.viewFactory = viewFactory;
this.accessibilityEventsDelegate = accessibilityEventsDelegate;
this.viewId = viewId;
Expand Down Expand Up @@ -129,11 +126,7 @@ public SingleViewPresentation(
OnFocusChangeListener focusChangeListener,
boolean startFocused
) {
// By default alpha is not preserved for the VD's contents.
// We make the window translucent as a side effect of doing so is preserving alpha.
// There should not be extra performance cost for setting the window to be translucent as
// there is only a single window within the VD.
super(outerContext, display, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
super(outerContext, display);
this.accessibilityEventsDelegate = accessibilityEventsDelegate;
viewFactory = null;
this.state = state;
Expand All @@ -148,6 +141,8 @@ public SingleViewPresentation(
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// This makes sure we preserve alpha for the VD's content.
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
if (state.fakeWindowViewGroup == null) {
state.fakeWindowViewGroup = new FakeWindowViewGroup(getContext());
}
Expand Down

0 comments on commit 7ae3c3e

Please sign in to comment.