OS: Android This is a bug to track all Android Client Refactor work. Design doc is @ https://goo.gl/MA6zjx.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/55898ecf9688df5ce26897362e35667f01eed7c3 commit 55898ecf9688df5ce26897362e35667f01eed7c3 Author: zijiehe <zijiehe@chromium.org> Date: Mon May 30 21:14:19 2016 This change is part of Remote Desktop Android Client Refactor work. A Google internal design doc can be found at http://shortn/_viNREInZum. This change added an Event class, which provides a simpler multiple listeners pattern. BUG= 615277 Review-Url: https://codereview.chromium.org/1999583002 Cr-Commit-Position: refs/heads/master@{#396752} [modify] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/BUILD.gn [modify] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/client_java_tmpl.gni [add] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/java/src/org/chromium/chromoting/Event.java [add] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/java/src/org/chromium/chromoting/Preconditions.java [add] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java [add] https://crrev.com/55898ecf9688df5ce26897362e35667f01eed7c3/remoting/android/javatests/src/org/chromium/chromoting/test/util/MutableReference.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/852fb89c23feb6a6d6cc24d1acf87fac0eeb8ceb commit 852fb89c23feb6a6d6cc24d1acf87fac0eeb8ceb Author: zijiehe <zijiehe@chromium.org> Date: Thu Jun 02 23:38:52 2016 [Chromoting] Minor changes to TapGestureDetector This change finals several fields in TapGestureDetector, and fixes potential issue which impacts long press position, and causing it not to be updated. BUG= 615277 Review-Url: https://codereview.chromium.org/2032883002 Cr-Commit-Position: refs/heads/master@{#397545} [modify] https://crrev.com/852fb89c23feb6a6d6cc24d1acf87fac0eeb8ceb/remoting/android/java/src/org/chromium/chromoting/TapGestureDetector.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/06d70696de0b8fac307927064bd36be2d486fe2a commit 06d70696de0b8fac307927064bd36be2d486fe2a Author: zijiehe <zijiehe@chromium.org> Date: Fri Jun 03 03:43:40 2016 [chromoting] Use Event to render feedback animations. This change moves FeedbackAnimator into a standalone class, with a startAnimation static function to register a SelfRemovableParameterRunnable into onPaint event of DesktopView. After animation finishes, the SelfRemovableParameterRunnable will be removed from onPaint event automatically. This change is part of Chromoting Android Client Refactor work. A design doc can be found at https://goo.gl/MA6zjx. BUG= 615277 Review-Url: https://codereview.chromium.org/2023133002 Cr-Commit-Position: refs/heads/master@{#397619} [modify] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/client_java_tmpl.gni [modify] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/java/src/org/chromium/chromoting/DesktopView.java [modify] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/java/src/org/chromium/chromoting/DesktopViewInterface.java [add] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/java/src/org/chromium/chromoting/FeedbackAnimator.java [add] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/java/src/org/chromium/chromoting/PaintEventParameter.java [modify] https://crrev.com/06d70696de0b8fac307927064bd36be2d486fe2a/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/90227c12f3bd94c48c6aa4bccb2ce773a4c48ecb commit 90227c12f3bd94c48c6aa4bccb2ce773a4c48ecb Author: zijiehe <zijiehe@chromium.org> Date: Fri Jun 03 19:03:52 2016 [Chromoting] Final SelfRemovableParameterRunnable This is a trivial change to make Event.SelfRemovableParameterRunnable final. BUG= 615277 Review-Url: https://codereview.chromium.org/2033573002 Cr-Commit-Position: refs/heads/master@{#397769} [modify] https://crrev.com/90227c12f3bd94c48c6aa4bccb2ce773a4c48ecb/remoting/android/java/src/org/chromium/chromoting/Event.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98 commit 96f227fa9b64bb434c0fc0ec6f00aec85b16cb98 Author: zijiehe <zijiehe@chromium.org> Date: Tue Jun 07 01:33:49 2016 [Chromoting] Decouple DesktopView and TouchInputHandler This change decouples DesktopView(Interface) and TouchInputHandler(Interface) by removing routing functions DesktopViewInterface.onSoftInputMethodVisibilityChanged and DesktopViewInterface.setInputStrategy. After this change, TouchInputHandler takes responsibility to listen to onInputModeChanged and onSoftInputMethodVisibilityChanged events of Desktop activity directly. This is part remoting desktop Android client refactor work, a design doc is @ https://goo.gl/MA6zjx. BUG= 615277 Review-Url: https://codereview.chromium.org/2035303002 Cr-Commit-Position: refs/heads/master@{#398192} [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/client_java_tmpl.gni [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/Desktop.java [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/DesktopView.java [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/DesktopViewInterface.java [add] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/InputModeChangedEventParameter.java [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/Preconditions.java [add] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/SoftInputMethodVisibilityChangedEventParameter.java [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java [modify] https://crrev.com/96f227fa9b64bb434c0fc0ec6f00aec85b16cb98/remoting/android/java/src/org/chromium/chromoting/TouchInputHandlerInterface.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2e1a7b320eec10d8b69937e4540d781c4bc748bb commit 2e1a7b320eec10d8b69937e4540d781c4bc748bb Author: zijiehe <zijiehe@chromium.org> Date: Thu Jun 09 18:39:12 2016 [Chromoting] TouchInputHandler now listens to events in DesktopView This change is to continually decouple TouchInputHandler and DesktopView. Instead of calling functions of TouchInputHandler from DesktopView, now TouchInputHandler listens to a set of DesktopViewInterface events. So we can have another implementation listens to the same events concurrently without impacting current logic. The advantages of this design are, 1. Eventually we do not need to modify mRenderData in DesktopView anymore, it can also listen to onClientSizeChanged / onHostSizeChanged event. 2. We can have a dummy DesktopViewInterface to test other components. 3. We can forward exactly same events to several implementations, and compare their outputs. For example, comparing the events generated by TouchInputHandler and a new implementation. This is part remoting desktop Android client refactor work, a design doc is @ https://goo.gl/MA6zjx. BUG= 615277 Review-Url: https://codereview.chromium.org/2047903002 Cr-Commit-Position: refs/heads/master@{#398956} [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/client_java_tmpl.gni [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/DesktopView.java [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/DesktopViewInterface.java [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/FeedbackAnimator.java [add] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/ScaleEventParameter.java [add] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/SizeChangedEventParameter.java [add] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/TapEventParameter.java [add] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/TouchEventParameter.java [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java [modify] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/TouchInputHandlerInterface.java [add] https://crrev.com/2e1a7b320eec10d8b69937e4540d781c4bc748bb/remoting/android/java/src/org/chromium/chromoting/TwoPointsEventParameter.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1a5aae1dd974c23bb6e990cccaa84eb648a02955 commit 1a5aae1dd974c23bb6e990cccaa84eb648a02955 Author: zijiehe <zijiehe@chromium.org> Date: Thu Jun 23 19:29:55 2016 [Chromoting] Add InputStub and InputEventSender for easy unittesting Currently only TouchInputStrategy is testable with RemoteInputInjector. So this change adds InputStub, which is an interface to represent a set of low level functions to send users' activities to remote host machine. So one can use a MockInputStub to log down all the events which should be sent to remote host, and test the behavior of InputStrategyInterface(s) or other implementations. Meanwhile this change also adds an InputEventSender, which provides a set of shortcut functions to directly send Android events instead of raw JNI types. This change is part of Android Remote Desktop client refactor, a design doc is @ https://goo.gl/MA6zjx. BUG= 615277 Review-Url: https://codereview.chromium.org/2066683003 Cr-Commit-Position: refs/heads/master@{#401681} [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/BUILD.gn [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/client_java_tmpl.gni [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/Desktop.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/DesktopView.java [add] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/InputEventSender.java [add] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/InputStub.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/SimulatedTouchInputStrategy.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java [delete] https://crrev.com/ac9f9a5461cce3b952af868bb46a14a73d58e814/remoting/android/java/src/org/chromium/chromoting/TouchInputHandlerInterface.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/TouchInputStrategy.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/TrackpadInputStrategy.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/cardboard/Cursor.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/cardboard/DesktopActivity.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/java/src/org/chromium/chromoting/jni/Client.java [add] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/javatests/src/org/chromium/chromoting/MockInputStub.java [add] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/javatests/src/org/chromium/chromoting/TouchEventBuilder.java [modify] https://crrev.com/1a5aae1dd974c23bb6e990cccaa84eb648a02955/remoting/android/javatests/src/org/chromium/chromoting/TouchInputStrategyTest.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1b741db696756e36216cb69719c162cb6617fde6 commit 1b741db696756e36216cb69719c162cb6617fde6 Author: zijiehe <zijiehe@chromium.org> Date: Tue Jul 19 03:10:26 2016 [Chromoting] Add InputMonitor and InputState Since gesture detection logic has no relationship with gesture handling logic, this change adds InputMonitor and InputState to detect gestures and raise a set of events to indicate different gestures. This change won't impact existing logic, so should have no end user impacts. Starting from this change, instead of refactoring existing code, a set of new classes will be added. So we can easily test the differences between existing implementation and new implementation. So currently no tests are added for InputMonitor. For further test and replacement plan, please refer to the design doc. This is part of Remote Desktop Android Client Refactor work. Design doc can be found at https://goo.gl/MA6zjx. BUG= 615277 Review-Url: https://codereview.chromium.org/2097273002 Cr-Commit-Position: refs/heads/master@{#406198} [modify] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/client_java_tmpl.gni [add] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/java/src/org/chromium/chromoting/InputMonitor.java [add] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/java/src/org/chromium/chromoting/InputState.java [modify] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/java/src/org/chromium/chromoting/TapEventParameter.java [modify] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java [modify] https://crrev.com/1b741db696756e36216cb69719c162cb6617fde6/remoting/android/java/src/org/chromium/chromoting/TwoPointsEventParameter.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dcc5d04905bb29d9a1786adcae1332d447ef6332 commit dcc5d04905bb29d9a1786adcae1332d447ef6332 Author: zijiehe <zijiehe@chromium.org> Date: Fri Oct 07 05:25:44 2016 [Chromoting] PromisedRaisable in Android client Some events, such as RenderStub.onClientSizeChanged(), triggers only once during its lifetime. Though we can ensure to add a ParameterRunnable before the event is triggered, it seems a little bit inconvenient. So this change adds a PromisedRaisable Event derived class to ensure newly added ParameterRunnable can at least be executed once. BUG= 615277 Review-Url: https://codereview.chromium.org/2385593002 Cr-Commit-Position: refs/heads/master@{#423800} [modify] https://crrev.com/dcc5d04905bb29d9a1786adcae1332d447ef6332/remoting/android/java/src/org/chromium/chromoting/Event.java [modify] https://crrev.com/dcc5d04905bb29d9a1786adcae1332d447ef6332/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java
Comment 1 by bugdroid1@chromium.org
, May 30 2016