I am using a Toast with a custom view. I instantiate the view and call setView on the toast. The Toast was supposed to float on top and not receive focus and touch events, and it worked well. After the app was launched, users complained that on a few phone models like the Galaxy Note, the Toast did get touch events and the app below it did not.
I printed the layout params flags (WindowManager.LayoutParams) that the view gets in method setLayoutParams. It turns out that on most devices, the value is 0x000098, but on some it is 0x040088. On the devices that the Toast gets the touch events, the flag FLAG_NOT_TOUCHABLE is removed, and the flag FLAG_WATCH_OUTSIDE_TOUCH is added. This explains why the toast gets the touch events.
But what causes this difference? Is there a way to force the toast to be not touchable ?