New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 621633 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocking:
issue 610899



Sign in to add a comment

[Android] Allow user to scroll the content under the top System UI into view

Project Member Reported by joedow@chromium.org, Jun 20 2016

Issue description

With the changes to the System UI visibility, we should investigate allowing the user to scroll the content beneath the top System UI into view.  This mirrors the functionality already implemented for the content beneath the soft keyboard.
 

Comment 1 by joedow@chromium.org, Jun 21 2016

Labels: M-53
Labels: -Pri-3 Pri-2
BTW, beside the case we discussed (when the keyboard is shown) this also affects split-screen mode on Android N. In split-screen mode the system UI is always visible, so it always obscures the content. So I think this should be P2.

Comment 3 by joedow@chromium.org, Jun 22 2016

I think the split-screen concern should be considered separately.  My goal for this bug is to ensure the experience is solid for released versions of Android and want to make sure this change goes in before we snap for the next client release.

I'd rather approach new N functionality from a design instead of bugfix standpoint, especially is the System UI is always present regardless of KB state, that sounds like a different solution may be needed.

P2 is correct either way as I am planning on getting this in for M53.
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc96f13a7997a739acfc693e33f1247362dea4cd

commit cc96f13a7997a739acfc693e33f1247362dea4cd
Author: joedow <joedow@chromium.org>
Date: Thu Jun 30 19:40:22 2016

Updating SystemUI visibility events in Android Client.

This change is the basis for an upcoming change which will allow the
user to scroll the remote desktop canvas out from under System UI which
would otherwise obscure it.

This change has two main pieces:
1.) I change the 'soft input mode visible' event into a more generic
System UI visible event.  This event will now be used to inform
interested listeners what the offsets are for the LTRB sides of the
screen so the underlying UI can react accordingly.

2.) This change moves some viewport calculation code into the
DesktopCanvas class.  The DesktopCanvas class is aware of the SystemUI
offsets and also handles positioning the canvas so this felt like the
right place to add in the UI ratcheting code later on.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2105843002
Cr-Commit-Position: refs/heads/master@{#403253}

[modify] https://crrev.com/cc96f13a7997a739acfc693e33f1247362dea4cd/remoting/android/client_java_tmpl.gni
[modify] https://crrev.com/cc96f13a7997a739acfc693e33f1247362dea4cd/remoting/android/java/src/org/chromium/chromoting/Desktop.java
[modify] https://crrev.com/cc96f13a7997a739acfc693e33f1247362dea4cd/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
[delete] https://crrev.com/c804b74f6c3af31b74fbf652c38e8d5c61655b91/remoting/android/java/src/org/chromium/chromoting/SoftInputMethodVisibilityChangedEventParameter.java
[add] https://crrev.com/cc96f13a7997a739acfc693e33f1247362dea4cd/remoting/android/java/src/org/chromium/chromoting/SystemUiVisibilityChangedEventParameter.java
[modify] https://crrev.com/cc96f13a7997a739acfc693e33f1247362dea4cd/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java

Project Member

Comment 5 by sheriffbot@chromium.org, Jul 4 2016

Labels: -M-53 M-54 MovedFrom-53
Moving this nonessential bug to the next milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by joedow@chromium.org, Jul 12 2016

Status: Started (was: Assigned)

Comment 7 by joedow@chromium.org, Aug 23 2016

Labels: -M-54 M-55
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f267f635b978d7f4fe4899c302c2126978dc102

commit 6f267f635b978d7f4fe4899c302c2126978dc102
Author: joedow <joedow@chromium.org>
Date: Mon Sep 26 18:47:36 2016

Change Viewport calculations to use screen size without System UI

This change updates code used to calculate the size of the viewport.  In
the past we would subtract the System UI edges from the viewport size
which could cause odd problems when allowing the canvas to be moved out
from under the System UI.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2367423002
Cr-Commit-Position: refs/heads/master@{#420949}

[modify] https://crrev.com/6f267f635b978d7f4fe4899c302c2126978dc102/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a4cb46ccf3108d8a2629df84bc081001fbd7d629

commit a4cb46ccf3108d8a2629df84bc081001fbd7d629
Author: joedow <joedow@chromium.org>
Date: Mon Sep 26 18:56:27 2016

Updating the method called when System UI visibility/size changes

This change updates the method used by the TouchInputHandler to
inform the DesktopCanvas class of System UI state and size changes.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2371803002
Cr-Commit-Position: refs/heads/master@{#420952}

[modify] https://crrev.com/a4cb46ccf3108d8a2629df84bc081001fbd7d629/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
[modify] https://crrev.com/a4cb46ccf3108d8a2629df84bc081001fbd7d629/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0eb9ad0afea07802c3c426001df2c5a0b1946e3d

commit 0eb9ad0afea07802c3c426001df2c5a0b1946e3d
Author: joedow <joedow@chromium.org>
Date: Tue Sep 27 22:37:27 2016

Separating cursor and viewport calculations in the desktop canvas

This change simplifies the code which handles positioning and
determining where the center of the viewport on the DesktopActivity
should be.  There is a small benefit now, but it makes deaing with
additional image padding much simpler (allowing the canvas to be pulled
from underneath System UI elements) in a future CL.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2372663002
Cr-Commit-Position: refs/heads/master@{#421365}

[modify] https://crrev.com/0eb9ad0afea07802c3c426001df2c5a0b1946e3d/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
[modify] https://crrev.com/0eb9ad0afea07802c3c426001df2c5a0b1946e3d/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java

It looks like now the keyboard just covers the bottom half of the desktop and there is no way to make it show up above the keyboard... Are you planning to solve this problem in a later CL?
Yes, it will be addressed in the next two CLs:
https://codereview.chromium.org/2375113003/
https://codereview.chromium.org/2378303002/
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2fd3d47699032e7d52a4ac2317135e444bbea6f

commit b2fd3d47699032e7d52a4ac2317135e444bbea6f
Author: joedow <joedow@chromium.org>
Date: Tue Oct 04 23:45:11 2016

Allow Desktop Canvas to be scrolled out from under System UI.

This change adds the ability to scroll the desktop canvas out from under
any visible System UI.

When System UI is displayed (for Kitkat and higher) the
TouchInputHandler instance is called with the state/sizes of the System
UI per edge of the screen.  These values are passed to the DesktopCanvas
instance which uses them for determining whether the System UI overlaps
with the remote image content.  If there is overlap then it adjusts
the region of valid cursor and viewport positions which then allows
the user to pan the content out from 'under' the System UI which is
obscuring it.allowable position of the viewport.

When the System UI disappears (or changes size), the current amount of
padding, if any, is used as the new boundary.  This prevents a jarring
translation from occuring when the System UI changes size.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2375113003
Cr-Commit-Position: refs/heads/master@{#423004}

[modify] https://crrev.com/b2fd3d47699032e7d52a4ac2317135e444bbea6f/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03431887b157c8db6fb738abdae93c7463f4ba3b

commit 03431887b157c8db6fb738abdae93c7463f4ba3b
Author: joedow <joedow@chromium.org>
Date: Wed Oct 05 19:28:16 2016

Adjust viewport center when in trackpad input mode.

This change adjusts the center of the viewport when user is using
trackpad mode.  Without this change, large System UI (such as soft input
methods) can obscure the cursor and prevent the user from entering text
in edit controls near the bottom of the screen.

This change addresses this by shifting the cursor position and viewport
up by 50% of the total viewport size, ensuring it is placed near the
mid-point of the viewable area.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2378303002
Cr-Commit-Position: refs/heads/master@{#423251}

[modify] https://crrev.com/03431887b157c8db6fb738abdae93c7463f4ba3b/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
[modify] https://crrev.com/03431887b157c8db6fb738abdae93c7463f4ba3b/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java

Owner: ajnolley@chromium.org
Status: Fixed (was: Started)
User should now be able to pan desktop content out from under System UI using either touch or keyboard.
Status: Verified (was: Fixed)
Verified this works with a Lollipop device and a Marshmallow device, with and without split screen. However, one quirk, found in  bug 653747 , which may be unavoidable. 
Project Member

Comment 17 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03431887b157c8db6fb738abdae93c7463f4ba3b

commit 03431887b157c8db6fb738abdae93c7463f4ba3b
Author: joedow <joedow@chromium.org>
Date: Wed Oct 05 19:28:16 2016

Adjust viewport center when in trackpad input mode.

This change adjusts the center of the viewport when user is using
trackpad mode.  Without this change, large System UI (such as soft input
methods) can obscure the cursor and prevent the user from entering text
in edit controls near the bottom of the screen.

This change addresses this by shifting the cursor position and viewport
up by 50% of the total viewport size, ensuring it is placed near the
mid-point of the viewable area.

BUG= 621633 

Review-Url: https://codereview.chromium.org/2378303002
Cr-Commit-Position: refs/heads/master@{#423251}

[modify] https://crrev.com/03431887b157c8db6fb738abdae93c7463f4ba3b/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
[modify] https://crrev.com/03431887b157c8db6fb738abdae93c7463f4ba3b/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java

Comment 18 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Sign in to add a comment