Commit Graph

9083 Commits

Author SHA1 Message Date
Daniel Chapin
951bc7d892 Revert "Always check if the view can be recycled."
Revert "Add test checking view recycling is always tested"

Revert submission 16149646-betterRecycling

Reason for revert: Droidfood Blocking Bug: 205503898
Reverted Changes:
Ib01c511e4:Always check if the view can be recycled.
If11dcd323:Add test checking view recycling is always tested

Change-Id: Id08d5ea3602d9d3ca03e148e57a9f97435534e2c
2021-11-08 17:20:04 +00:00
Pierre Barbier de Reuille
8011a28559 Always check if the view can be recycled.
Previously, the recycling was only checked for multiple layout, as it
was assumed the AppWidgetHostView would make the basic check. However,
adapters views (e.g. ListView, ...) do not make any recycling check,
instead relying on caching using the Layout id. The caching cannot be
changed as it is common to other parts of Android.

This CL ensures the view can be recycled when reapplied, always.

Bug: 181985606
Test: atest android.widget.cts.RemoteViewsRecyclingTest
Change-Id: Ib01c511e4a793cce1519157aea06e194a2d8f855
2021-11-01 10:37:12 +00:00
Pierre Barbier de Reuille
206066b6cc Check if a view can be recycled in async case.
When implementing the code, it seems this was forgotten :( If the view
id of the root of the RemoteViews is changed, currently, the top-level
view will be re-used, which is an error.

Bug: 181985606
Test: atest android.widget.cts.RemoteViewsRecyclingTest
Change-Id: I5a8addb08f597ec574e3ed49d1318771e4c7c767
2021-10-28 14:51:39 +00:00
Pierre Barbier de Reuille
acfcc90ebd Check if APK paths are valid right before creating the context.
The check has to be done in RemoteViews and in AppWidgetHostView right
before creating the context used to inflate the app widget. Further, the
APK is cached potentially in two places: in the APK with code and the
APK without codes, so both places are updated if present.

Test: manual, see bug for details
Fix: 202369942

Change-Id: I5718f67711a3332a942d3c037eef7f30379549a4
2021-10-25 08:20:10 +00:00
Joanne Chung
5667540a7d Fix not show translation if call startTranslation after pauseTranslation
It is possible the developer calls pauseTranslation() to show the
original text but it calls startTranslation() to show translated
text. Ideally the developer should call resumeTranslation but it
also make sense to call startTranslation() to show translated text.

When receiving translation response, we avoid showing transaltion
if the view already has the response and it's the same. But it is
good to also check if the view is showing translated text or not.
If the view is not translated text, it is possible developer calls
startTranslation() instead if calling pauseTranslation() to show
translated again, the fixing can resolve this case.

The issue case can be fixed by this change. But there is a deeper
problem about it's useless the caller call finishTranslation(). This
is planned to be fixed in next release.

Bug: 201238016
Test: manual. The issue case is fixed.
Test: manual. Test some chat apps, it still works fine.
Test: atest CtsTranslationTestCases
Change-Id: I699d0fa1d60ac96db094adcc6e17f4203df03214
2021-10-07 06:04:06 +00:00
Joanne Chung
7672bbc915 Fix the existing translation doesn't update for new translated result.
It is possible the existing text is changed that triggers a new
translation. We cache the translation response when onShowTransltion
is called. We should keep the translation response is updated if this
is a new translation result.

Bug: 200232741
Test: atest CtsTranslationTestCases
Test: manual. The issue app works fine.
Change-Id: Iaf7423cd35d4484e33de84e478256b77a000f390
2021-09-19 15:16:57 +00:00
Pierre Barbier de Reuille
b6ee41aa6d Make RemoteViewsContextWrapper take the user id of the application info.
This is important to ensure sub-contexts know the user id used to create
the current context, or when using a work profile, a new context will be
created each time.

Fix: 197761162
Test: Manually with hand-made app widget
Change-Id: Ifb4a6dad152acbd2b2853ba8bf5cf1e131d55394
2021-09-02 11:33:43 +01:00
TreeHugger Robot
f7fb6c535e Merge "Fix OOB crash in ContentCapture for translated views" into sc-dev 2021-08-13 21:59:25 +00:00
Ahaan Ugale
273a0eabc8 Fix OOB crash in ContentCapture for translated views
When a view is partially visible on the screen, ContentCapture reports
only the visible portion (+ a few additional lines). The offsets
calculated for this can be out of bounds if the view's displayed text
is longer from the original text.

Fix: 196414491
Test: manual - translate app to lang with more characters and trigger
 a relayout (by scrolling for an app with ListView)
Test: atest CtsContentCaptureServiceTestCases
Change-Id: Iae98133c48cc67a0b00f1b0ab8b93e5adb293423
2021-08-12 14:21:00 -07:00
Ryan Mitchell
a57b0e9c4e Revert "Revert "Apply overlay updates to widget provider info""
Bug: 15332156
Bug: 195649929
This reverts commit 471720cccf.

Change-Id: Ifa89ae43613add1137ddeca4cb40543a3a01d6a7
2021-08-09 13:15:12 -07:00
Patrick Baumann
e2c96ac3ad Merge "Revert "Apply overlay updates to widget provider info"" into sc-dev 2021-08-05 18:07:10 +00:00
Patrick Baumann
471720cccf Revert "Apply overlay updates to widget provider info"
This reverts commit 0bf76b6296.

Bug: 193866093
Fixes: 195267626
Reason for revert: b/195267626

Change-Id: I598a99f761e66d8bedbb0745d488ccc35fff9201
2021-08-04 20:05:36 +00:00
Ryan Mitchell
f56550282e Merge "Apply overlay updates to widget provider info" into sc-dev 2021-07-30 16:04:00 +00:00
Ryan Mitchell
0bf76b6296 Apply overlay updates to widget provider info
When Runtime Resource Overlays (RROs) are applied to an application,
the ApplicationInfo of the app in package manager is updated to have
overlay paths. Widgets create the context used to inflate their
remote views using a snapshot of the ApplicationInfo of the widget
provider. This snapshot is taken when the widget RemoteView is
initially created and sent to system server.

This change updates the snapshot of the widget provider ApplicationInfo
with the new overlay paths and notifies apps hosting widgets to
re-inflate their remote views in order to have RROs apply to widgets
correctly.

Bug: 193866093
Test: Repeatedly change wallpaper & style color to a "basic" color
      and go back to launcher to observe overlay correct color is
      applied
Change-Id: I0b9b8c0d32d83a52e9ea5bc8ba1635cf99e4b921
2021-07-29 16:02:54 +00:00
TreeHugger Robot
b42f19e297 Merge "Limit overscroll stretch for animation" into sc-dev 2021-07-14 16:55:22 +00:00
Dan Sandler
318c00483c AnalogClock: Allow subclasses to override the "now" instant.
Allows you to use the (deprecated) AnalogClock widget to
display times other than the current system clock time.

While we're at it, update the AnalogClock widget assets to
contemporary vector drawables.

Bug: 177962166
Test: atest AnalogClockTest
Change-Id: I69e9e89b8f42030e910086ee79bb5a447a00bb84
2021-07-13 09:52:12 -04:00
Mihir Patel
59fe064d75 Merge "Guarding against null pointer exception when setting view structure info for content capture" into sc-dev 2021-07-02 18:22:15 +00:00
TYM Tsai
598376c6b5 Merge "Notify Content Capture when deselected" into sc-dev 2021-07-02 03:55:12 +00:00
Joanne Chung
559b8dd078 Merge "Disable log default dumps in debug ROM" into sc-dev 2021-07-02 00:10:57 +00:00
George Mount
4c19a7cc2a Limit overscroll stretch for animation
Bug: 192465706

Stretch overscroll was allowing pull distances beyond 1, but
the effect only applied until 1. This meant that as the stretch
relaxed, it would appear stopped at 1 until it dropped below 1.

This CL does two things. First, it limits the pull distance
to 1, so that if it is pulled beyond 1, the distance remains
1 and the spring will immediately retract from 1 with onRelease().
Second, when the fling hits 1, it stops the fling animation and
immediately begins retracting from a velocity of 0.

Test: new tests and manual testing for visual effect
Test: I23cd8990fff24dbef36a93c16c115948d774a557
Change-Id: I06f1533aed0ce24756c535789fdcc7e99c5bfb9b
2021-07-01 18:07:15 +00:00
Ryan Mitchell
b3659d36b0 Merge changes from topic "revert-15058002-SNQUARIDWJ" into sc-dev
* changes:
  Revert^2 "Apply overlay changes with config change"
  Revert^3 "Deprecate Context#createApplicationContext"
2021-06-30 20:58:43 +00:00
Pierre Barbier de Reuille
8ea2a96c28 Merge "Add a config value for the default of the analog clock flag" into sc-dev 2021-06-30 16:09:15 +00:00
Ryan Mitchell
350c2669d6 Revert^3 "Deprecate Context#createApplicationContext"
This reverts commit cb5a80ea57.

Reason for revert: Was not the cause of the test failure

Fixes: 186622527
Test: atest FrameworksCoreTests:ContextTest
Change-Id: I705854f080200f0465d94a7754e710f05a3ec92c
2021-06-30 15:53:45 +00:00
TYM Tsai
c6db1be4cc Notify Content Capture when deselected
Notify Content Capture with the text changed event when deselected.

Bug: 184311217
Test: manual
 1.long press trigger selection, event is sent.
 2.drag selection indicators, send event after the drag is done.
 3.deselecting, event is sent.
Test: atest CtsContentCaptureServiceTestCases
Change-Id: I3d05b8e798bfb5b213817b36f163aab0a688bdf4
2021-06-30 09:14:27 +08:00
Paul Hobbs
8d440c0566 Merge changes from topic "revert-15058002-SNQUARIDWJ" into sc-dev
* changes:
  Revert^2 "Deprecate Context#createApplicationContext"
  Revert "Version LoadedApk cache using base code path"
  Revert "Apply overlay changes with config change"
2021-06-29 20:36:15 +00:00
Paul Hobbs
cb5a80ea57 Revert^2 "Deprecate Context#createApplicationContext"
Bug: 192242649

5a41b45a85

Change-Id: Idcebd68e0079e7e87de04ae25069b3a9ff72093c
2021-06-29 20:06:45 +00:00
Joanne Chung
bec597e4cc Disable log default dumps in debug ROM
We enable the logs dump in debug rom, we should only dump logs when
the debug flag is on.

Bug: 182433547
Test: Make sure the flag is disable after test and enable during test.

Change-Id: I0a719ee9c545b4e66f3414d7f57f3d959004071e
2021-06-29 18:09:03 +08:00
TYM Tsai
6c5c023530 Merge "Notify Content Capture the selection was changed" into sc-dev 2021-06-29 07:25:57 +00:00
George Mount
5a1f9df840 Merge "Linearly complete overscroll stretch when close" into sc-dev 2021-06-28 17:10:31 +00:00
Ryan Mitchell
5a532f6eed Merge changes Icf81845d,Iea54abf3,I98656314 into sc-dev
* changes:
  Apply overlay changes with config change
  Version LoadedApk cache using base code path
  Revert "Deprecate Context#createApplicationContext"
2021-06-27 06:27:58 +00:00
Stevie Kideckel
38eba47271 Add a config value for the default of the analog clock flag
Also, handle this config value being set to 0 by hiding the seconds hand
and ticking once per minute.

Bug: 191269485
Test: locally
Change-Id: Ib2b705437d570d46328174d618ec0de6193212ca
2021-06-25 10:33:27 +00:00
Joanne Chung
27f397f55a Merge "Fix TextViewTranslationTest test fail." into sc-dev 2021-06-24 04:46:50 +00:00
Joanne Chung
8b95d38fa4 Merge "Bug fix: Move the implementation out from View.onTranslationResponse." into sc-dev 2021-06-24 02:08:40 +00:00
George Mount
22a9f9c83e Linearly complete overscroll stretch when close
Fixes: 190475978

Damped spring animations asymptotically approach their destinations.
The final pixels can take many frames to complete, but stopping them
means that we get a disruptive jump in those final pixels.

This CL detects when the edge effect animation is close to the finish and
completes the animation with a linear velocity that matches a
common velocity at 8 pixels distant. This means that the animation
terminates quicker so that touch events directed at the contents
after the animation completes (e.g. taps) can interact with the contents
soon.

The CL also adjusts the delta for detecting zero in the stretch
animation as it was jumping by a pixel or more at the end of an otherwise
smooth animation.

Test: manual testing for the visual effect
Change-Id: Ie249b0265c5c5939b597668d5afe4f76d0430821
2021-06-23 21:25:04 +00:00
Ryan Mitchell
5a41b45a85 Revert "Deprecate Context#createApplicationContext"
This reverts commit c54ebba25b.

Bug: 188059515
Test: atest FrameworksCoreTests:ContextTest
Change-Id: I986563142dac135281889e811e6e5219d728d5d1
2021-06-22 22:30:38 -07:00
Ahaan Ugale
5d42257561 Merge changes from topics "cc-composing-update", "cc-merge-equals" into sc-dev
* changes:
  ContentCapture: Don't ignore events with changed composing/selection span
  ContentCapture: Notify when Composing region changes.
2021-06-23 05:05:19 +00:00
Mihir Patel
987a2b4150 Guarding against null pointer exception when setting view structure info for content capture
Test: Manual, CTS
Bug: 189329389
Change-Id: Iaaacd59dc377079847951ab635df9bb602467390
2021-06-22 11:46:24 -07:00
Joanne Chung
4a6d59b696 Fix TextViewTranslationTest test fail.
The fail will only be found in the release build, we put the return
in the wrong place.

Bug: 189359744
Test: local disable flag and TextViewTranslationTest pass.
Change-Id: Idd377145b3757abaf528a90a25b6c73e9940f9f8
2021-06-21 21:32:45 +08:00
TreeHugger Robot
3bb97bee2c Merge "Merge "/widget/OWNERS: Change TextView to TextView*" am: df2c78d226 am: c34ef6d2df am: 8aac56ee8f am: 44e9c3609c" into sc-dev 2021-06-17 22:21:12 +00:00
Treehugger Robot
b4c7bd9792 Merge "/widget/OWNERS: Change TextView to TextView*" am: df2c78d226 am: c34ef6d2df am: 8aac56ee8f am: 44e9c3609c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1721330

Fix: 191391120
Change-Id: Ic13c42d7e063e35bd980ddd0d6f10552d5198b9e
(cherry picked from commit c96c073294)
2021-06-17 20:39:33 +00:00
TYM Tsai
46e946a251 Notify Content Capture the selection was changed
The ContentCapture service is interested in the selection changes.
When the selection was changed, notifies a text changed event to
ContentCapture.

Bug: 184311217
Test: manual
 1.long press trigger selection, event is sent.
 2.drag selection indicators, send event after the drag is done.
Test: atest CtsContentCaptureServiceTestCases
Change-Id: Ie45f617b132bc240b6cf61ee7ebc3041275f1694
2021-06-17 22:35:10 +08:00
Joanne Chung
a9da1722cc Bug fix: Move the implementation out from View.onTranslationResponse.
Keep onTranslationResponse() only to save TranslationResponse. We can
move set TransformationMethod logic to TextViewTranslationCallback.
With the current implementation, if the developers overrides
onTranslationResponse(), they don't have a chance to use the TextView
default ViewTranslationCallback implementation because they don't set
the TranslationTransformation, they must implement their solution. If
we move logic to TextViewViewTranslationCallback and the developers
only overrides onTranslationResponse(), they still have a chance to
use the default TextViewViewTranslationCallback if the developers set
the TranslationResponse for View.

Bug: 178353965
Test: manual to make sure translation still works.
Test: atest CtsTranslationTestCases

Change-Id: Iada7f3efbbc7705ecf962c78e275ed942816707f
2021-06-17 22:12:27 +08:00
Ahaan Ugale
fb12492de7 ContentCapture: Notify when Composing region changes.
Sending the notification from the InputConnection layer reduces the
number of events that are handled (merged) by ContentCapture. We are
also able to handle composing span being removed; at the TextView layer,
we cannot do that as we don't know if the composing span will be added
back, which happens on typing).

Bug: 184311217
Test: manual - append chars, delete chars, replace text, move cursor to
 composing text, move cursor to remove composing span, drag cursor
Test: atest android.contentcaptureservice.cts.LoginActivityTest
Change-Id: I0e9d153cf7ba2734f38cb1b6044eb7b670fb34ad
2021-06-16 10:47:59 -07:00
Sally Yuen
77ea3710bb Merge "Unregister IA11yManagerClient in ToastPresenter" into sc-dev 2021-06-11 19:14:45 +00:00
Stevie Kideckel
cf30f5dae2 Merge "Ensure that the RemoteResponse is not empty before acting on it" into sc-dev 2021-06-11 16:39:15 +00:00
Bernardo Rufino
0245b5cbce Merge "Expand toast javadoc to include rate limiting info." into sc-dev 2021-06-11 12:28:08 +00:00
Stevie Kideckel
b72cf99044 Ensure that the RemoteResponse is not empty before acting on it
Potential NPE was added in ag/14881530

Fix: 190353630
Test: locally with sample app with and without items
Change-Id: I946b6b6719600cb638db1b15d74a8c3af6587f32
2021-06-10 09:59:01 +00:00
Stevie Kideckel
0e77904b02 Merge "Fix handling for onItemClick of fixed collection items" into sc-dev 2021-06-09 15:53:30 +00:00
Jan Tomljanovic
8cf456cea9 Expand toast javadoc to include rate limiting info.
Test: N/A just adding javadoc
Bug: 190468866
Change-Id: I0a1ab865f5db7a990c1a667b729df52c4735a38c
2021-06-09 10:56:22 +01:00
Stevie Kideckel
80aaf8817a Merge "Schedule time ticks for the next minute when no seconds hand is present" into sc-dev 2021-06-09 08:28:34 +00:00