summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherAppWidgetHost.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2014-06-16 15:22:56 -0700
committerAdam Cohen <adamcohen@google.com>2014-06-16 15:31:27 -0700
commit084c31873e5d5015dac9eaac722a6d8387b6dd8d (patch)
treee4fe40eaf983beb6958a87801f7cd8925ea52c0a /src/com/android/launcher3/LauncherAppWidgetHost.java
parent90571e1fa68269bbe5b5d5fa3181ec27e3984556 (diff)
downloadandroid_packages_apps_Trebuchet-084c31873e5d5015dac9eaac722a6d8387b6dd8d.tar.gz
android_packages_apps_Trebuchet-084c31873e5d5015dac9eaac722a6d8387b6dd8d.tar.bz2
android_packages_apps_Trebuchet-084c31873e5d5015dac9eaac722a6d8387b6dd8d.zip
Catching TransactionTooLargeException in AppWidgetHost#startListening
solution b) from issue 14255011 Change-Id: I1dc521632a132de496ff9a583b1e0b29415aacdd
Diffstat (limited to 'src/com/android/launcher3/LauncherAppWidgetHost.java')
-rw-r--r--src/com/android/launcher3/LauncherAppWidgetHost.java17
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();