summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorPatrick Dubroy <dubroy@google.com>2011-01-11 20:01:31 -0800
committerPatrick Dubroy <dubroy@google.com>2011-01-14 14:50:47 -0800
commit2313eff05b8f52e72ebe06c589c419941fa019d6 (patch)
tree4adc09f24721db794e031f4ff49989dc6d4bde5f /src/com/android
parenteb3d6dbb2e83494919a74c62f6b89806ecc25330 (diff)
downloadandroid_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
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher2/Launcher.java11
-rw-r--r--src/com/android/launcher2/LauncherAppWidgetHost.java6
-rw-r--r--src/com/android/launcher2/LauncherModel.java3
-rw-r--r--src/com/android/launcher2/PagedViewWithDraggableItems.java6
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();
+ }
}