summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Lee <llee@cyngn.com>2015-05-28 19:16:11 -0700
committerRajesh Yengisetty <rajesh@cyngn.com>2015-05-29 14:29:50 +0000
commit20bf4bd9539e7e1038b7a3f53b3593b37fb184be (patch)
tree3dab208ef850717c8fd46bf98589e834205343d7
parentac3febf76b0287ba2f9c31eef1f771592ae35020 (diff)
downloadandroid_packages_apps_Trebuchet-20bf4bd9539e7e1038b7a3f53b3593b37fb184be.tar.gz
android_packages_apps_Trebuchet-20bf4bd9539e7e1038b7a3f53b3593b37fb184be.tar.bz2
android_packages_apps_Trebuchet-20bf4bd9539e7e1038b7a3f53b3593b37fb184be.zip
Trebuchet: fix excessive drawing with folders
Change-Id: I0a33bfd3b18fe8b4d2c57e38fe7eb2dc247a9219
-rw-r--r--src/com/android/launcher3/FolderIcon.java78
1 files changed, 49 insertions, 29 deletions
diff --git a/src/com/android/launcher3/FolderIcon.java b/src/com/android/launcher3/FolderIcon.java
index 34603b90f..03bb1e34a 100644
--- a/src/com/android/launcher3/FolderIcon.java
+++ b/src/com/android/launcher3/FolderIcon.java
@@ -181,6 +181,55 @@ public class FolderIcon extends FrameLayout implements FolderListener {
icon.setOnFocusChangeListener(launcher.mFocusHandler);
icon.setDrawingCacheEnabled(true);
+
+ // get dimen for the icon size
+ // ratio: iconsize = 3*padding + 2*small_icon_size
+ // padding*6.5 = small_icon_size
+ // so padding = folderIconSize / 16
+ int padding = grid.iconSizePx / 16;
+ int smallIconSize = (int) (padding * 6.5);
+
+ for (int i = NUM_ITEMS_IN_PREVIEW; i >= 0; i--) {
+ ImageView appIcon = null;
+ int marginLeft = 0, marginRight = 0, marginTop = 0, marginBottom = 0;
+ switch(i) {
+ case 0:
+ appIcon = (ImageView) icon.findViewById(R.id.app_0);
+ marginLeft = padding;
+ marginTop = padding;
+ break;
+ case 1:
+ appIcon = (ImageView) icon.findViewById(R.id.app_1);
+ marginTop = padding;
+ marginRight = padding;
+ break;
+ case 2:
+ appIcon = (ImageView) icon.findViewById(R.id.app_2);
+ marginBottom = padding;
+ marginLeft = padding;
+ break;
+ case 3:
+ appIcon = (ImageView) icon.findViewById(R.id.app_3);
+ marginBottom = padding;
+ marginRight = padding;
+ break;
+ }
+
+ if (appIcon != null) {
+ RelativeLayout.LayoutParams layoutParams
+ = (RelativeLayout.LayoutParams) appIcon.getLayoutParams();
+
+ layoutParams.width = smallIconSize;
+ layoutParams.height = smallIconSize;
+ layoutParams.leftMargin = marginLeft;
+ layoutParams.rightMargin = marginRight;
+ layoutParams.topMargin = marginTop;
+ layoutParams.bottomMargin = marginBottom;
+
+ appIcon.setLayoutParams(layoutParams);
+ }
+ }
+
return icon;
}
@@ -681,16 +730,6 @@ public class FolderIcon extends FrameLayout implements FolderListener {
}
if (!mAnimating) {
- LauncherAppState app = LauncherAppState.getInstance();
- DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
-
- // get dimen for the icon size
- // ratio: iconsize = 3*padding + 2*small_icon_size
- // padding*6.5 = small_icon_size
- // so padding = folderIconSize / 16
- int padding = grid.iconSizePx / 16;
- int smallIconSize = (int) (padding * 6.5);
-
for (int i = NUM_ITEMS_IN_PREVIEW; i >= 0; i--) {
d = null;
if (i < items.size()) {
@@ -703,42 +742,23 @@ public class FolderIcon extends FrameLayout implements FolderListener {
}
ImageView appIcon = null;
- int marginLeft = 0, marginRight = 0, marginTop = 0, marginBottom = 0;
switch(i) {
case 0:
appIcon = (ImageView) findViewById(R.id.app_0);
- marginLeft = padding;
- marginTop = padding;
break;
case 1:
appIcon = (ImageView) findViewById(R.id.app_1);
- marginTop = padding;
- marginRight = padding;
break;
case 2:
appIcon = (ImageView) findViewById(R.id.app_2);
- marginBottom = padding;
- marginLeft = padding;
break;
case 3:
appIcon = (ImageView) findViewById(R.id.app_3);
- marginBottom = padding;
- marginRight = padding;
break;
}
if (appIcon != null) {
appIcon.setImageDrawable(d);
- RelativeLayout.LayoutParams layoutParams
- = (RelativeLayout.LayoutParams) appIcon.getLayoutParams();
- layoutParams.width = smallIconSize;
- layoutParams.height = smallIconSize;
- layoutParams.leftMargin = marginLeft;
- layoutParams.rightMargin = marginRight;
- layoutParams.topMargin = marginTop;
- layoutParams.bottomMargin = marginBottom;
-
- appIcon.setLayoutParams(layoutParams);
}
}
} else {