summaryrefslogtreecommitdiff
path: root/tools/aapt2/java/JavaClassGenerator_test.cpp
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2015-07-14 05:59:05 -0700
committerYohei Yukawa <yukawa@google.com>2015-07-14 05:59:05 -0700
commitbafc908304d49e8f7f7c5e52772c75da66e4daa3 (patch)
tree90556fb0473be16b8a91bcd8380ac1deff6273b3 /tools/aapt2/java/JavaClassGenerator_test.cpp
parent9de5dcac9589d064414a2ff6f3b76dc40c1b8765 (diff)
Allow FloatingToolbar to be outside of the attached window.
Currently PopupWindow used for the floating toolbar specifies neither FLAG_LAYOUT_NO_LIMITS nor FLAG_LAYOUT_IN_SCREEN. As a result, the floating toolbar can overlap the selected text when the attached window does not have enough height. Here is the repro code. final TextView textView = new TextView(this); textView.setLayoutParams( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); textView.setText("A test sentence."); textView.setTextIsSelectable(true); final AlertDialog dialog = new AlertDialog.Builder(this) .setView(textView) .create(); dialog.getWindow().setGravity(Gravity.BOTTOM) dialog.show(); If you tap a word in the dialog, the floating toolbar unintentionally overlaps the selected text due to the limited height of the AlertDialog. It also turns out that just calling PopupWindow.setClippingEnabled(false) to specify FLAG_LAYOUT_NO_LIMITS is not sufficient and ends up showing the toolbar on the NavBar because we have mistakenly compared bounds in window-local coordinates (e.g. FloatingActionModemContentRectOnWindow) with bounds in screen coordinates (e.g. FloatingActionMode#mScreenRect). Hence the confusion of window-local coordinates and screen coordinates in FloatingToolbar and FloatingToolbar also needs to be addresses. To summarize here are the notable changes in this CL: - Specify FLAG_LAYOUT_NO_LIMITS so that the floating toolbar can be placed outside of the attached window. (We do this with PopupWindow#setClippingEnabled) - Switch to use screen coordinates from window-local coordiantes in FloatingToolbar and FloatingActionMode because some system components such as WindowManager prefer screen coordinates. - Put -OnScreen suffix for Rect and Point variables as long as they are in screen coordinates. Bug: 22335001 Change-Id: I71a8d356e868dc7715b030ca1078da4ec39368c3
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions