Adding additional checks to prevent launcher crash when we can't compose animation buffer. (Bug: 5478481)
Change-Id: I5671bffab8626b4e2224ef4c174204a5a3b68f97
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index 8d67e5d..688ea15 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -167,6 +167,14 @@
mAppsCustomizePane.hideScrollingIndicator(false);
}
+ private void reloadCurrentPage() {
+ if (!LauncherApplication.isScreenLarge()) {
+ mAppsCustomizePane.flashScrollingIndicator();
+ }
+ mAppsCustomizePane.loadAssociatedPages(mAppsCustomizePane.getCurrentPage());
+ mAppsCustomizePane.requestFocus();
+ }
+
private void onTabChangedEnd(AppsCustomizePagedView.ContentType type) {
mAppsCustomizePane.setContentType(type);
}
@@ -188,6 +196,12 @@
post(new Runnable() {
@Override
public void run() {
+ if (mAppsCustomizePane.getMeasuredWidth() <= 0 ||
+ mAppsCustomizePane.getMeasuredHeight() <= 0) {
+ reloadCurrentPage();
+ return;
+ }
+
// Setup the animation buffer
Bitmap b = Bitmap.createBitmap(mAppsCustomizePane.getMeasuredWidth(),
mAppsCustomizePane.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
@@ -217,12 +231,7 @@
inAnim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- if (!LauncherApplication.isScreenLarge()) {
- mAppsCustomizePane.flashScrollingIndicator();
- }
- mAppsCustomizePane.loadAssociatedPages(
- mAppsCustomizePane.getCurrentPage());
- mAppsCustomizePane.requestFocus();
+ reloadCurrentPage();
}
});
AnimatorSet animSet = new AnimatorSet();