summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcretin45 <cretin45@gmail.com>2016-04-13 14:52:04 -0700
committerTom Powell <zifnab@zifnab06.net>2017-03-26 16:21:09 -0700
commitb4ec44001f5fe41712e96f0309219d02334f6b0a (patch)
treebc6b4635e43ac23be0544882fbe9d81ca0002810
parentf770d76f0d2b443c949b61974a5012f04cc9f24d (diff)
downloadandroid_packages_apps_Trebuchet-b4ec44001f5fe41712e96f0309219d02334f6b0a.zip
android_packages_apps_Trebuchet-b4ec44001f5fe41712e96f0309219d02334f6b0a.tar.gz
android_packages_apps_Trebuchet-b4ec44001f5fe41712e96f0309219d02334f6b0a.tar.bz2
Trebuchet: Don't crash when AppWidgetService is unavailable
Issue-id: CYNGNOS-2437 Change-Id: Ie83f26482539a821f498e07bec6d955c849b02c7
-rw-r--r--src/com/android/launcher3/Launcher.java3
-rw-r--r--src/com/android/launcher3/LauncherAppWidgetHost.java7
2 files changed, 8 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index dbdc61e..58e9365 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -513,7 +513,6 @@ public class Launcher extends Activity
mAppWidgetManager = AppWidgetManagerCompat.getInstance(this);
mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
- mAppWidgetHost.startListening();
// If we are getting an onCreate, we can actually preempt onResume and unset mPaused here,
// this also ensures that any synchronous binding below doesn't re-trigger another
@@ -1077,6 +1076,8 @@ public class Launcher extends Activity
if (mLauncherCallbacks != null) {
mLauncherCallbacks.onStart();
}
+ // If AppwidgetService failed to bind in onCreate, this will attempt binding again.
+ onAppWidgetHostReset();
}
@Override
diff --git a/src/com/android/launcher3/LauncherAppWidgetHost.java b/src/com/android/launcher3/LauncherAppWidgetHost.java
index 6c3a1e8..6105a06 100644
--- a/src/com/android/launcher3/LauncherAppWidgetHost.java
+++ b/src/com/android/launcher3/LauncherAppWidgetHost.java
@@ -21,6 +21,7 @@ import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetProviderInfo;
import android.content.Context;
import android.os.TransactionTooLargeException;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -69,6 +70,7 @@ public class LauncherAppWidgetHost extends AppWidgetHost {
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
@@ -76,7 +78,10 @@ public class LauncherAppWidgetHost extends AppWidgetHost {
// widgets upon bind anyway. See issue 14255011 for more context.
} else {
throw new RuntimeException(e);
- }
+ }*/
+ // If we can't bind to the app widget service, move on. We will retry at the next
+ // onStart().
+ Log.e("LauncherAppWidgetHost", "Error binding to IAppWidgetService", e);
}
}