summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2014-10-31 11:48:25 -0700
committerAdam Cohen <adamcohen@google.com>2014-10-31 12:15:09 -0700
commit3f9c971e761222dc9fb4e5866f81c5f7a3348992 (patch)
tree02dcea77ed7b42fb5811011701e0d3f8859875b6 /src/com
parent5fd733dbaeff3f07fff98f24947b2e1ab89eff7d (diff)
downloadandroid_packages_apps_Trebuchet-3f9c971e761222dc9fb4e5866f81c5f7a3348992.tar.gz
android_packages_apps_Trebuchet-3f9c971e761222dc9fb4e5866f81c5f7a3348992.tar.bz2
android_packages_apps_Trebuchet-3f9c971e761222dc9fb4e5866f81c5f7a3348992.zip
Adding a couple memory optimizations to Launcher
-> Always dispose of widget page views when leaving the activity. These pages hold onto many bitmaps. -> Clear database cache when leaving the activity. Bug: 17967108 Change-Id: I10ebaaed14e7cd86f09a9afcabd73043705f21b8
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/AppsCustomizePagedView.java2
-rw-r--r--src/com/android/launcher3/AppsCustomizeTabHost.java8
-rw-r--r--src/com/android/launcher3/Launcher.java19
-rw-r--r--src/com/android/launcher3/PagedViewWithDraggableItems.java4
4 files changed, 23 insertions, 10 deletions
diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java
index 7f3b7fb35..064885823 100644
--- a/src/com/android/launcher3/AppsCustomizePagedView.java
+++ b/src/com/android/launcher3/AppsCustomizePagedView.java
@@ -1476,7 +1476,9 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
}
}
+ @Override
public void reset() {
+ super.reset();
// If we have reset, then we should not continue to restore the previous state
mSaveInstanceStateItemIndex = -1;
diff --git a/src/com/android/launcher3/AppsCustomizeTabHost.java b/src/com/android/launcher3/AppsCustomizeTabHost.java
index 9a516fd41..df65cbaa1 100644
--- a/src/com/android/launcher3/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher3/AppsCustomizeTabHost.java
@@ -141,14 +141,6 @@ public class AppsCustomizeTabHost extends FrameLayout implements LauncherTransit
mPagedView.loadAssociatedPages(mPagedView.getCurrentPage());
}
}
-
- public void onTrimMemory() {
- mContent.setVisibility(GONE);
- // Clear the widget pages of all their subviews - this will trigger the widget previews
- // to delete their bitmaps
- mPagedView.clearAllWidgetPages();
- }
-
@Override
public ViewGroup getContent() {
return mPagedView;
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index bb7265e44..7fd8193bd 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -50,6 +50,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.ContentObserver;
+import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -3568,6 +3569,9 @@ public class Launcher extends Activity
if (mSearchDropTargetBar != null) {
mSearchDropTargetBar.hideSearchBar(false);
}
+
+ // This can hold unnecessary references to views.
+ mStateAnimation = null;
}
});
@@ -3853,6 +3857,9 @@ public class Launcher extends Activity
content.setCurrentPage(content.getNextPage());
mAppsCustomizeContent.updateCurrentPageScroll();
+
+ // This can hold unnecessary references to views.
+ mStateAnimation = null;
}
});
@@ -3896,8 +3903,16 @@ public class Launcher extends Activity
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
- if (level >= ComponentCallbacks2.TRIM_MEMORY_MODERATE) {
- mAppsCustomizeTabHost.onTrimMemory();
+ if (level >= ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
+ // The widget preview db can result in holding onto over
+ // 3MB of memory for caching which isn't necessary.
+ SQLiteDatabase.releaseMemory();
+
+ // We reset the apps customize tray in order to
+ // to free all the memory associated with widget previews
+ if (mAppsCustomizeTabHost != null) {
+ mAppsCustomizeTabHost.reset();
+ }
}
}
diff --git a/src/com/android/launcher3/PagedViewWithDraggableItems.java b/src/com/android/launcher3/PagedViewWithDraggableItems.java
index 2a29c33f3..7f4a3a032 100644
--- a/src/com/android/launcher3/PagedViewWithDraggableItems.java
+++ b/src/com/android/launcher3/PagedViewWithDraggableItems.java
@@ -91,6 +91,10 @@ public abstract class PagedViewWithDraggableItems extends PagedView
return super.onTouchEvent(ev);
}
+ public void reset() {
+ mLastTouchedItem = null;
+ }
+
@Override
public boolean onTouch(View v, MotionEvent event) {
mLastTouchedItem = v;