diff options
author | Patrick Dubroy <dubroy@google.com> | 2011-01-11 20:01:31 -0800 |
---|---|---|
committer | Patrick Dubroy <dubroy@google.com> | 2011-01-14 14:50:47 -0800 |
commit | 2313eff05b8f52e72ebe06c589c419941fa019d6 (patch) | |
tree | 4adc09f24721db794e031f4ff49989dc6d4bde5f | |
parent | eb3d6dbb2e83494919a74c62f6b89806ecc25330 (diff) | |
download | android_packages_apps_Trebuchet-2313eff05b8f52e72ebe06c589c419941fa019d6.tar.gz android_packages_apps_Trebuchet-2313eff05b8f52e72ebe06c589c419941fa019d6.tar.bz2 android_packages_apps_Trebuchet-2313eff05b8f52e72ebe06c589c419941fa019d6.zip |
Allow previous view hierarchy to be GC'ed more quickly on rotation
Change-Id: I76215a48e76234501b7ce253dedfa449502ab88f
4 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index e5d22996f..2281c8477 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -106,6 +106,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -1313,6 +1314,7 @@ public final class Launcher extends Activity (System.currentTimeMillis() - mAutoAdvanceSentTime)); } mHandler.removeMessages(ADVANCE_MSG); + mHandler.removeMessages(0); // Remove messages sent using postDelayed() } } } @@ -1493,6 +1495,9 @@ public final class Launcher extends Activity } catch (NullPointerException ex) { Log.w(TAG, "problem while stopping AppWidgetHost during Launcher destruction", ex); } + mAppWidgetHost = null; + + mWidgetsToAdvance.clear(); TextKeyListener.getInstance().release(); @@ -1511,6 +1516,11 @@ public final class Launcher extends Activity } unregisterReceiver(mCloseSystemDialogsReceiver); + + ((ViewGroup) mWorkspace.getParent()).removeAllViews(); + mWorkspace.removeAllViews(); + mWorkspace = null; + mDragController = null; } @Override @@ -1977,6 +1987,7 @@ public final class Launcher extends Activity for (ItemInfo item: mDesktopItems) { item.unbind(); } + mDesktopItems.clear(); } /** diff --git a/src/com/android/launcher2/LauncherAppWidgetHost.java b/src/com/android/launcher2/LauncherAppWidgetHost.java index 46e66e7ac..68d4903da 100644 --- a/src/com/android/launcher2/LauncherAppWidgetHost.java +++ b/src/com/android/launcher2/LauncherAppWidgetHost.java @@ -36,4 +36,10 @@ public class LauncherAppWidgetHost extends AppWidgetHost { AppWidgetProviderInfo appWidget) { return new LauncherAppWidgetHostView(context); } + + @Override + public void stopListening() { + super.stopListening(); + clearViews(); + } } diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index 713268ad6..7e7261038 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -492,6 +492,9 @@ public class LauncherModel extends BroadcastReceiver { mLoaderTask.stopLocked(); } } + mItems.clear(); + mAppWidgets.clear(); + mFolders.clear(); } /** diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java index f24d7e05d..3f722921a 100644 --- a/src/com/android/launcher2/PagedViewWithDraggableItems.java +++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java @@ -150,4 +150,10 @@ public abstract class PagedViewWithDraggableItems extends PagedView public void setDragSlopeThreshold(float dragSlopeThreshold) { mDragSlopeThreshold = dragSlopeThreshold; } + + @Override + protected void onDetachedFromWindow() { + mLastTouchedItem = null; + super.onDetachedFromWindow(); + } } |