summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-08-18 17:01:24 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-08-18 19:09:46 -0700
commita1503f47aa2fe140a5e83a4ea5d6478955ba97af (patch)
tree2bd5981707ead24a89825b79eb8b0e2ad2c50d71 /src/com/android/launcher3/model
parent8f90dcff37f13bbbc3f875f1c9521cbc9745c673 (diff)
downloadandroid_packages_apps_Trebuchet-a1503f47aa2fe140a5e83a4ea5d6478955ba97af.tar.gz
android_packages_apps_Trebuchet-a1503f47aa2fe140a5e83a4ea5d6478955ba97af.tar.bz2
android_packages_apps_Trebuchet-a1503f47aa2fe140a5e83a4ea5d6478955ba97af.zip
Comparing widget sizes when sorting if the labels are same
Bug: 21441837 Change-Id: Ib0e6d3b84389f900264a0d696d22057426973719
Diffstat (limited to 'src/com/android/launcher3/model')
-rw-r--r--src/com/android/launcher3/model/WidgetItem.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/com/android/launcher3/model/WidgetItem.java b/src/com/android/launcher3/model/WidgetItem.java
index b3f0c8203..0d7ba1e11 100644
--- a/src/com/android/launcher3/model/WidgetItem.java
+++ b/src/com/android/launcher3/model/WidgetItem.java
@@ -68,6 +68,17 @@ public class WidgetItem extends ComponentKey implements Comparable<WidgetItem> {
return thisWorkProfile ? 1 : -1;
}
- return sCollator.compare(label, another.label);
+ int labelCompare = sCollator.compare(label, another.label);
+ if (labelCompare != 0) {
+ return labelCompare;
+ }
+
+ // If the label is same, put the smaller widget before the larger widget. If the area is
+ // also same, put the widget with smaller height before.
+ int thisArea = spanX * spanY;
+ int otherArea = another.spanX * another.spanY;
+ return thisArea == otherArea
+ ? Integer.compare(spanY, another.spanY)
+ : Integer.compare(thisArea, otherArea);
}
}