History log of /frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
29cfce7a387c5f1ea92a310398ed4ed213a3cf62 06-Dec-2012 Adam Cohen <adamcohen@google.com> Merge "Making sure to clear state related to views that are being recycled (issue 7650538)" into jb-mr1.1-dev
ff067190770281b221398e4ac9992a5e4bb10b27 06-Dec-2012 Adam Cohen <adamcohen@google.com> Making sure to clear state related to views that are being recycled (issue 7650538)

Change-Id: I5161ac261f963789537d2066a472cd3036c218aa
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
94022e8997084be458a1faf46e72efab1d59e973 04-Dec-2012 Amith Yamasani <yamasani@google.com> Make 3rd party lockscreen widgets work on secondary users

If you install a lockscreen widget app on a secondary user, lockscreen fails to find it.
There were several places where the correct context and userId were required under the
covers - AppWidgetHost, AppWidgetHostView and RemoteViewsAdapter.

Set the user id in the required places and use it to query the package information.

Bug: 7662835
Change-Id: Ife482c8ab2a2e601650b7cfe2660e88d3b8f2050
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
ac2e6dd590b42c374aaeaf75f2531ab167cbdd30 03-Dec-2012 Amith Yamasani <yamasani@google.com> Fix remote views cache to avoid lockscreen widget crosstalk

Bug: 7660973

RemoteViewsAdapter will now store the userId as part of the cache key
when caching remote views to optimize for orientation changes.

Change-Id: I7c4e52b3995d4f56ebfa35aa9516327e182ad892
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
c566b43d02596cba437e9a2723e9f989297cca72 01-Dec-2012 Amith Yamasani <yamasani@google.com> Fix crosstalk between users for widgets hosted in lockscreen

This was initially about the Clock widget crashing repeatedly on some
devices with multiple users. Turned out that there were race conditions
when switching users that could result in remote views of one user calling
back to the RemoteViewsAdapter in keyguard that in turn sent an incorrect widget id
to a different user's widget, resulting in a crash.

Since KeyguardHostView is instantiated in the same process for different users,
it needs to carry a user identity to pass along to AppWidgetService so that
remote views services were bound to the correct user and callbacks were attached and
detached properly.

Added some aidl calls that take the userId to do the binding properly. A more
complete fix might be needed in the future so that all calls from Keyguard carry
the user id.

Also, there was a problem in comparing host uid for secondary users, since Settings
for a secondary user has a different uid than keyguard. Not an issue on single-user
systems. Changed the host.uid comparison to accomodate for the secondary user.

Bug: 7450247
Change-Id: Idbc36e3c60023cac74174f6cb7f2b2130dd3052c
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
a6a4cbc18f7e5a3831d787d3f398e02c5eae6512 27-Sep-2012 Adam Cohen <adamcohen@google.com> Fixing Keyguard widget click handling (issue 7179972)

Change-Id: I2b268d08f5aff403a04db53c357fa45a6cb8d490
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
4a9df8dda5c826ae72a2b5370b9d786ef8d0efd0 28-Jul-2012 Adam Cohen <adamcohen@google.com> No longer parceling FixedSizeRemoteViewsCaches

-> Related to issue 6854767

Change-Id: Ib9a9ef827a739ef9efbe6f11dcc4765004fa0c51
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
591ff978e5ca419fc1baad212419667b8a5e6dc7 25-Jul-2012 Adam Cohen <adamcohen@google.com> Fixing cache pruning to avoid pruning those in the visible range

-> Improves flashing on rotation of stack widgets, or other widgets
who's items use a lot of memory

Change-Id: I762b555ac1827861ed63ac5929972395f3080a0a
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
335c3b681bf1c118d9bf22d1a508c87173632ec6 25-Jul-2012 Adam Cohen <adamcohen@google.com> Caching the FixedSizeRemoteViewsCaches across rotation

-> This prevents unnecessary flashing of collection widgets on rotation

Change-Id: Id29d4952aa640ca90b31dc3e02e2402cc0fb84d3
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
a5a06873d152d16aa47ca9be8501417280b9c9cb 12-Jul-2012 Adam Cohen <adamcohen@google.com> Prevent crash in AppWidgetHost that can be triggered by an AppWidget

-> When the RemoteViewsFactory violates the getViewTypeCount() contract
we detect it, and prevent the AdapterView from crashing
-> Also made RemoteViewsCache a static inner class, since we may need
that down the road, and there's no reason it shouldn't be

Change-Id: I872a255167aac94513e522924179de61286b995a
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
35fbe2a5923d45ebcdfb3ad74efd1089a05e8737 22-May-2012 Adam Cohen <adamcohen@google.com> Fix ANR which could occur for collection widgets with very large items

-> We cache RemoteViews which populate the AdapterViews, but only
up to a total memory amount of 2MB. The remainder of the cache
is pruned out. If _every_ item is greater than 2MB, we were failing
to prune the last item, leaving the framework in a loop on a bg
thread, but holding a lock required by the main thread.

Change-Id: I0574a25a59ebec6586ae223fff6605c0fee953c3
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
5d20064651b9947a4573c9a0eefec90f66eb1b59 24-Apr-2012 Adam Cohen <adamcohen@google.com> Enabling RemoteViews to have a landscape and portrait layout

-> Implmented BitmapCache to ensure no bitmap data is duplicated
within a RemoteViews hierarchy.

Change-Id: I68f0f5e2882ee2a2a9a110c1642b93c4c7518743
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
4c994986202b5b668a6377a9ad47aa5345046db9 02-Apr-2012 Adam Cohen <adamcohen@google.com> Only preload items if they are within the valid range (issue 6265338, 6194161)

Change-Id: Ic2713b41ad545a004df1e06e4be9946d7336c4b3
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
b967392e0170af8cfd8053fd43fcdf8c46f703e9 05-Jan-2012 Adam Cohen <adamcohen@google.com> Hinting RemoteViewsAdapter as to which views are visible

-> This prevents collection widgets from flashing loading
views when they are updated with new content

Change-Id: I1241ff9a09edfd990ad03f76449d18b9359246b4
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
2148d43eb23c702e834c93ae427f822f32d280a2 28-Jul-2011 Adam Cohen <adamcohen@google.com> Fixing widget notifyDataSetChanged() not getting called, issue 5092676

Change-Id: I61a034a77c0c9d07aba71bfabe7a0864ce92c2e9
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
b7ffea697292e48c9d764c5677b69af484e045c8 14-Jul-2011 Adam Cohen <adamcohen@google.com> Catching RemoteViews#apply() layout inflation exceptions in RemoteViewsAdapter

Change-Id: I8a481e106b27d145fda92aa0d747e4a8615a5fd0
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
fc442bdea14289656ef1f537103578eb71faf473 11-Jun-2011 Jeff Brown <jeffbrown@google.com> Ensure the RemoteViewsAdapter cleans up its HandlerThread.

Using a finalizer for this is kind of gross but it is robust.
We could try to hook onDetachedFromWindow() on the View
but that would introduce additional lifecycle management to
the adapter since a View could potentially be detached and then
reattached, so we might need to recreate the handler, etc.

Ideally this code should probably be changed to use AsyncTask.

Change-Id: I9ad5fff388411619363e4a075ed0244966b38726
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
fa2e3ff3d33b2cbb452d22439e98b59e07f70f3d 08-Apr-2011 Adam Cohen <adamcohen@google.com> Fix crash in bug 4259574

Change-Id: I7fb3a4485ecfc2ac19eebdcfdcfe26e97a08e6b5
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
2625feae79ab418355c2a4dafe8b162bba3cc1cf 24-Mar-2011 Adam Cohen <adamcohen@google.com> Modifying RemoteViewsFactory interface

-made onDestroy() one way
-moved uncaught exception handling to the application process

Change-Id: I958571a34eaa48b27e441e3a117c109fb2d2c644
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
7ab73e757ac6b66b0066c8ff41c2d589adacd248 05-Mar-2011 Winson Chung <winsonc@google.com> Fixing issue where AppWidget service was being hit regardless of caching in RemoteViewsAdapter. (3467340)

Change-Id: Icbcbf6ef94a861d88243bd2d6587995991b53c82
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
84bbb020217adcdfe0694c44ccab57e208ffde16 21-Feb-2011 Winson Chung <winsonc@google.com> Fixing issue where RemoteViewsService.onDestroy() was never being called.

Change-Id: I15ad04eee18bc3e09d4846c7f2f2d2d8d168e518
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
aeb66ca473a194d0b9148234a710b26ce88c4807 11-Feb-2011 Adam Cohen <adamcohen@google.com> Fixing a bug in RemoteViewsAdapter where cached items weren't being marked as requested

Change-Id: I1275cbbcd949d27c1c7444a9fb7a684ae7d7eb25
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
b90a91c633e99d4559095184af27d1416541d3c0 26-Jan-2011 Winson Chung <winsonc@google.com> Making requested indices the last to be pruned when we hit cache memory limits. (3368863)

- Also tweaking disconnect delay, cache size, and memory limit

Change-Id: If67188dcb363e5a2fbc02736f82bfd783af02533
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
16c8d8a558f94ec14ef52bb5ac11044e2d0d902c 21-Jan-2011 Winson Chung <winsonc@google.com> Re-enabling queued unbinding of services after requests to the service. (3394210)

- Fix for crash when detaching from window
- Potential fix for occasional IllegalStateException when updating List based widgets

Change-Id: I3d3f2bb691552a1136111043db686c4926b510c6
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
32cf193412bb1261b0b8d9ab69df68e635a1e77d 19-Jan-2011 Winson Chung <winsonc@google.com> Disabling queued unbinding of RemoteViewsServices until we fix flashing in widgets.

Change-Id: Iee53d4930dc4007df4298a282cdd5101876215a1
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
81f39eb6e76d0be1dd341af835e8002a0f80524e 12-Jan-2011 Winson Chung <winsonc@google.com> Refactoring app widgets to address security/performance issues.

- Moving the service binding to AppWidgetService to prevent arbitrary apps from binding to widget services
- Requiring RemoteViewsServices to require android.permission.BIND_REMOTEVIEWS permission

Change-Id: Id135bafba998299eb278067712b8a5d8487cfd04
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
181d2e3172f24d8c920cbe4b446e8f938ccdc8bb 17-Jan-2011 Adam Cohen <adamcohen@google.com> Adding instance check to RemoteViewsAdapter getViewAt

Change-Id: Ie99d5aeef6e963c89b62cfd435d1c5cbb1fb6bfa
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
ec84c3a189e4aa70aa6ea8ba712e5a4f260a153b 14-Jan-2011 Patrick Dubroy <dubroy@google.com> Allow old view hierarchy to be GC'ed more quickly during rotation.
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
fb60386b46d0c6216c765c10bd33ac42ca780917 17-Dec-2010 Adam Cohen <adamcohen@google.com> Addressing issues associated RemoteViewsAdapter's service crashes / disconnects

-See issue: 3052667

Change-Id: I95f1cac3defeadc38ac75453d9d59cd1b3cbcc83
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
490127df193ecaa4dacf241a1a6b72ed6e5b0a0f 15-Nov-2010 Adam Cohen <adamcohen@google.com> Fix for Issue: 3196583

Change-Id: I7878cf41274d4f5885d6179f3072a3be05386075
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
a32edd4b4c894f4fb3d9fd7e9d5b80321df79e20 26-Oct-2010 Adam Cohen <adamcohen@google.com> Adding click feedback to widget collections

Change-Id: I97fceb6c68ca6eb1b703eafacf201e1aed7c38e7
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
aaffa8b4d4d3530e02cd6a0619b0c1485c133e55 30-Oct-2010 Winson Chung <winsonc@google.com> Adding NPE check when calculating remote views memory usage.

Change-Id: I9fd4b980e45cadb980ba20d5ef1ddf150639853a
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
a5f6f802c6e472503efd5b598dc3bab57150c1c9 29-Sep-2010 Winson Chung <winsonc@google.com> Extracting default loading view definition into XML resource.

Change-Id: Ie5ba936d014f82a2b4df0d803b7553bfc8c25ae7
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
6364f2bbe5254b4274f3feffc48f4259eacc205e 29-Sep-2010 Winson Chung <winsonc@google.com> Fixing issue where notifyDataSetChanged was not properly being called while not loading items.

Change-Id: I46bb30a5a95576891f11873b214f5c760f5d1757
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
61ac7e3b3602d9d20b8876b4bf8d2e536af04a47 28-Sep-2010 Winson Chung <winsonc@google.com> Being more judicious in resetting meta data for the RemoteAdapter.

- Also adding more error checking when we go to apply the RemoteViews

Change-Id: Id7b13f390cc8ff08fdf8d96cf6bdc5668bf4f2f0
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
3ec9a45c36d3ca5ffbc6e85bbeb497b065e14155 24-Sep-2010 Winson Chung <winsonc@google.com> Re-architecting RemoteViewsAdapter internals due to new constraints.

- Respecting the AdapterView/Adapter contract using FrameLayout notification to update individual items
- Initial changes to allow for keeping (currently bitmap only) memory in check when loading numerous RemoteViews
- Fixing issue with leaking activities due to extra service connection references
- Fixing issue with multiple RemoteViewsAdapters being set on the same AdapterView
- Fixing small issue with StackView sometimes requesting indices out of bounds
- Removing background loading, reverting to previous message-queuing method (seems to be performant now)

Change-Id: I42313767aa791dfe35c247c97ae5d64389e6bb4c
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
9b3a2cf2a0a482ce8212eb2775176dd4c23e8e9a 16-Sep-2010 Winson Chung <winsonc@google.com> Prevent multiple RemoteViewAdapters from being set for the same intent.

Fixing issue where we were comparing and storing intents incorrectly in the RemoteViewsService reference counting scheme.

Change-Id: Iedf5997ed3a3ee7f8729cf8689121913196571f8
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
fbc3590f40436e372df198c2d6b27877ae8952f1 10-Sep-2010 Winson Chung <winsonc@google.com> Adding some error handling to RemoteViewsAdapter, removing artificial loading delay.

Change-Id: I9cff6045086f0959ace65c2210fa3b9341f5aa5e
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
6394c0e52cf641d93f678fd052499aa952e3595d 16-Aug-2010 Winson Chung <winsonc@google.com> Adding callback and fix to RemoteViewsFactory on notifyDataSetChanged.
Also removing extra parameter in AppWidgetManager.notifyDataSetChanged.

Change-Id: Ic771fe045ae793a6dacf09f1230e7c1c4b59a13e
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
44729e3d1c01265858eec566c7b7c676c46a7916 23-Jul-2010 Adam Cohen <adamcohen@google.com> Preliminary implementation of StackView, which extends AdapterViewAnimator.

Change-Id: I3e9d1203fc8848835f28d6bc1c9dc0a3fcf7f242
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
3ad4a1b13f789757a46dc0aea98c97b9fdc5ef6c 23-Jul-2010 Adam Cohen <adamcohen@google.com> Fixing a bug in RemoteViewsAdapter

Change-Id: If39a05b65ee9f8f3a2ac6b7ebb06a76122c4ada7
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
c6d6d4a4e73fcb63eaa13d66fcbf26d847799838 22-Jul-2010 Winson Chung <winsonc@google.com> Fixing indexing issue causing certain items not to load. Performance improvements + testing temporary loading scheme.

Change-Id: I65bfb60237f397ff546b77fbef1b4a7d1c8cba07
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
3db40678d33c2b5f90c380966d36b3e10ed11f05 20-Jul-2010 Adam Cohen <adamcohen@google.com> Added AdapterViewAnimator and AdapterViewFlipper which are versions of ViewAnimator and ViewFlipper
whos views are defined by adapters.

Change-Id: I6ca1681b4820e6a1b6b69fc6d92c11c9f969bb88
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java
499cb9f516062b654952d282f211bee44c31a3c2 16-Jul-2010 Winson Chung <winsonc@google.com> Initial changes to allow collections in widgets.

Change-Id: I3cfa899bae88cd252912cecebc12e93c27a3b7c9
/frameworks/base/core/java/android/widget/RemoteViewsAdapter.java