Merging motorola's patch to fix ClassCastException

issue: 15518616
Change-Id: I7d707f12cb20be9aa24d7ea86051f3712b3534af
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index a8bace8..19da2ae 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -3554,18 +3554,18 @@
             mCollator = Collator.getInstance();
         }
         public final int compare(LauncherActivityInfoCompat a, LauncherActivityInfoCompat b) {
-            CharSequence labelA, labelB;
+            String labelA, labelB;
             ComponentName keyA = a.getComponentName();
             ComponentName keyB = b.getComponentName();
             if (mLabelCache.containsKey(keyA)) {
-                labelA = mLabelCache.get(keyA);
+                labelA = mLabelCache.get(keyA).toString();
             } else {
                 labelA = a.getLabel().toString().trim();
 
                 mLabelCache.put(keyA, labelA);
             }
             if (mLabelCache.containsKey(keyB)) {
-                labelB = mLabelCache.get(keyB);
+                labelB = mLabelCache.get(keyB).toString();
             } else {
                 labelB = b.getLabel().toString().trim();