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

Commit e11f0225 authored by Adrian Roos's avatar Adrian Roos Committed by Android Git Automerger
Browse files

am c04bedd7: am 5347d018: Merge "Prevent ImmersiveModeCling from eating all touches" into mnc-dev

* commit 'c04bedd7':
  Prevent ImmersiveModeCling from eating all touches
parents 76173cc8 c04bedd7
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -36,10 +36,10 @@ import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.Button;
import android.widget.FrameLayout;
@@ -212,6 +212,25 @@ public class ImmersiveModeConfirmation {
            }
        };

        private ViewTreeObserver.OnComputeInternalInsetsListener mInsetsListener =
                new ViewTreeObserver.OnComputeInternalInsetsListener() {
                    private final int[] mTmpInt2 = new int[2];

                    @Override
                    public void onComputeInternalInsets(
                            ViewTreeObserver.InternalInsetsInfo inoutInfo) {
                        // Set touchable region to cover the cling layout.
                        mClingLayout.getLocationInWindow(mTmpInt2);
                        inoutInfo.setTouchableInsets(
                                ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
                        inoutInfo.touchableRegion.set(
                                mTmpInt2[0],
                                mTmpInt2[1],
                                mTmpInt2[0] + mClingLayout.getWidth(),
                                mTmpInt2[1] + mClingLayout.getHeight());
                    }
                };

        private BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
@@ -238,6 +257,8 @@ public class ImmersiveModeConfirmation {
            mWindowManager.getDefaultDisplay().getMetrics(metrics);
            float density = metrics.density;

            getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsListener);

            // create the confirmation cling
            mClingLayout = (ViewGroup)
                    View.inflate(getContext(), R.layout.immersive_mode_cling, null);