diff options
author | Adam Cohen <adamcohen@google.com> | 2014-06-16 15:22:56 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2014-06-18 17:31:20 +0000 |
commit | 7fa0ae5056f753a26f267b633bbc160b2b86f725 (patch) | |
tree | 691f2057c90f143e565b0469763cc0fb8227d6e5 | |
parent | 60e1efe032821235c04376088494b44dfde4b62e (diff) | |
download | android_packages_apps_Trebuchet-7fa0ae5056f753a26f267b633bbc160b2b86f725.tar.gz android_packages_apps_Trebuchet-7fa0ae5056f753a26f267b633bbc160b2b86f725.tar.bz2 android_packages_apps_Trebuchet-7fa0ae5056f753a26f267b633bbc160b2b86f725.zip |
DO NOT MERGE - Catching TransactionTooLargeException in AppWidgetHost#startListening
solution b) from issue 14255011
Change-Id: I1dc521632a132de496ff9a583b1e0b29415aacdd
(cherry picked from commit 084c31873e5d5015dac9eaac722a6d8387b6dd8d)
-rw-r--r-- | src/com/android/launcher3/LauncherAppWidgetHost.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LauncherAppWidgetHost.java b/src/com/android/launcher3/LauncherAppWidgetHost.java index 7b08d4403..fa5e38f8b 100644 --- a/src/com/android/launcher3/LauncherAppWidgetHost.java +++ b/src/com/android/launcher3/LauncherAppWidgetHost.java @@ -20,6 +20,7 @@ import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; import android.content.Context; +import android.os.TransactionTooLargeException; /** * Specific {@link AppWidgetHost} that creates our {@link LauncherAppWidgetHostView} @@ -42,6 +43,22 @@ public class LauncherAppWidgetHost extends AppWidgetHost { } @Override + public void startListening() { + try { + super.startListening(); + } catch (Exception e) { + if (e.getCause() instanceof TransactionTooLargeException) { + // We're willing to let this slide. The exception is being caused by the list of + // RemoteViews which is being passed back. The startListening relationship will + // have been established by this point, and we will end up populating the + // widgets upon bind anyway. See issue 14255011 for more context. + } else { + throw new RuntimeException(e); + } + } + } + + @Override public void stopListening() { super.stopListening(); clearViews(); |