Revert "Fix ClassCastException in QuickstepModelDelegate"

This reverts commit 380f8fd89016b2527d9a3fb2b35c0c4810e12855.

Reason for revert: remove bug fix on master

Bug: 173838775
Change-Id: I3cbb3e383c52095a10b3e22ea4c586c0c3c8d7a9
diff --git a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
index f9a0bb1..e82c900 100644
--- a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
+++ b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java
@@ -161,7 +161,8 @@
             }
             InstanceId instanceId = new InstanceIdSequence().newInstanceId();
             for (ItemInfo info : itemsIdMap) {
-                FolderInfo parent = getContainer(info, itemsIdMap);
+                FolderInfo parent = info.container > 0
+                        ? (FolderInfo) itemsIdMap.get(info.container) : null;
                 StatsLogCompatManager.writeSnapshot(info.buildProto(parent), instanceId);
             }
             additionalSnapshotEvents(instanceId);
@@ -198,7 +199,8 @@
                         }
 
                         for (ItemInfo info : itemsIdMap) {
-                            FolderInfo parent = getContainer(info, itemsIdMap);
+                            FolderInfo parent = info.container > 0
+                                    ? (FolderInfo) itemsIdMap.get(info.container) : null;
                             LauncherAtom.ItemInfo itemInfo = info.buildProto(parent);
                             Log.d(TAG, itemInfo.toString());
                             StatsEvent statsEvent = StatsLogCompatManager.buildStatsEvent(itemInfo,
@@ -220,22 +222,6 @@
         }
     }
 
-    private static FolderInfo getContainer(ItemInfo info, IntSparseArrayMap<ItemInfo> itemsIdMap) {
-        if (info.container > 0) {
-            ItemInfo containerInfo = itemsIdMap.get(info.container);
-
-            if (!(containerInfo instanceof FolderInfo)) {
-                Log.e(TAG, String.format(
-                        "Item info: %s found with invalid container: %s",
-                        info,
-                        containerInfo));
-            } else {
-                return (FolderInfo) containerInfo;
-            }
-        }
-        return null;
-    }
-
     @Override
     public void validateData() {
         super.validateData();
diff --git a/src/com/android/launcher3/model/BgDataModel.java b/src/com/android/launcher3/model/BgDataModel.java
index d3351dc..13ad90e 100644
--- a/src/com/android/launcher3/model/BgDataModel.java
+++ b/src/com/android/launcher3/model/BgDataModel.java
@@ -31,8 +31,6 @@
 import android.util.ArraySet;
 import android.util.Log;
 
-import androidx.annotation.Nullable;
-
 import com.android.launcher3.LauncherSettings;
 import com.android.launcher3.LauncherSettings.Favorites;
 import com.android.launcher3.Workspace;
@@ -217,19 +215,6 @@
     }
 
     public synchronized void addItem(Context context, ItemInfo item, boolean newItem) {
-        addItem(context, item, newItem, null);
-    }
-
-    public synchronized void addItem(
-            Context context, ItemInfo item, boolean newItem, @Nullable LoaderMemoryLogger logger) {
-        if (logger != null) {
-            logger.addLog(
-                    Log.DEBUG,
-                    TAG,
-                    String.format("Adding item to ID map: %s", item.toString()),
-                    /* stackTrace= */ null);
-        }
-
         itemsIdMap.put(item.id, item);
         switch (item.itemType) {
             case LauncherSettings.Favorites.ITEM_TYPE_FOLDER:
diff --git a/src/com/android/launcher3/model/LoaderCursor.java b/src/com/android/launcher3/model/LoaderCursor.java
index 08b38e8..47df538 100644
--- a/src/com/android/launcher3/model/LoaderCursor.java
+++ b/src/com/android/launcher3/model/LoaderCursor.java
@@ -383,23 +383,18 @@
         info.cellY = getInt(cellYIndex);
     }
 
-    public void checkAndAddItem(ItemInfo info, BgDataModel dataModel) {
-        checkAndAddItem(info, dataModel, null);
-    }
-
     /**
      * Adds the {@param info} to {@param dataModel} if it does not overlap with any other item,
      * otherwise marks it for deletion.
      */
-    public void checkAndAddItem(
-            ItemInfo info, BgDataModel dataModel, LoaderMemoryLogger logger) {
+    public void checkAndAddItem(ItemInfo info, BgDataModel dataModel) {
         if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
             // Ensure that it is a valid intent. An exception here will
             // cause the item loading to get skipped
             ShortcutKey.fromItemInfo(info);
         }
         if (checkItemPlacement(info)) {
-            dataModel.addItem(mContext, info, false, logger);
+            dataModel.addItem(mContext, info, false);
         } else {
             markDeleted("Item position overlap");
         }
diff --git a/src/com/android/launcher3/model/LoaderMemoryLogger.java b/src/com/android/launcher3/model/LoaderMemoryLogger.java
deleted file mode 100644
index f48efcb..0000000
--- a/src/com/android/launcher3/model/LoaderMemoryLogger.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.model;
-
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import java.util.ArrayList;
-
-/**
- * Helper logger that collects logs while {@code LoaderTask#run} executes and prints them all iff
- * an exception is caught in {@code LoaderTask#run}.
- */
-public class LoaderMemoryLogger {
-
-    private static final String TAG = "LoaderMemoryLogger";
-
-    private final ArrayList<LogEntry> mLogEntries = new ArrayList<>();
-
-    protected LoaderMemoryLogger() {}
-
-    protected void addLog(int logLevel, String tag, String log) {
-        addLog(logLevel, tag, log, null);
-    }
-
-    protected void addLog(
-            int logLevel, String tag, String log, Exception stackTrace) {
-        switch (logLevel) {
-            case Log.ASSERT:
-            case Log.ERROR:
-            case Log.DEBUG:
-            case Log.INFO:
-            case Log.VERBOSE:
-            case Log.WARN:
-                mLogEntries.add(new LogEntry(logLevel, tag, log, stackTrace));
-                break;
-            default:
-                throw new IllegalArgumentException("Invalid log level provided: " + logLevel);
-
-        }
-    }
-
-    protected void clearLogs() {
-        mLogEntries.clear();
-    }
-
-    protected void printLogs() {
-        for (LogEntry logEntry : mLogEntries) {
-            String tag = String.format("%s: %s", TAG, logEntry.mLogTag);
-            String logString = logEntry.mStackStrace == null
-                    ? logEntry.mLogString
-                    : String.format(
-                            "%s\n%s",
-                            logEntry.mLogString,
-                            Log.getStackTraceString(logEntry.mStackStrace));
-
-            Log.println(logEntry.mLogLevel, tag, logString);
-        }
-        clearLogs();
-    }
-
-    private static class LogEntry {
-
-        protected final int mLogLevel;
-        protected final String mLogTag;
-        protected final String mLogString;
-        @Nullable protected final Exception mStackStrace;
-
-        protected LogEntry(
-                int logLevel, String logTag, String logString, @Nullable Exception stackStrace) {
-            mLogLevel = logLevel;
-            mLogTag = logTag;
-            mLogString = logString;
-            mStackStrace = stackStrace;
-        }
-    }
-}
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index 2a0f9a6..a4f6f7a 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -52,8 +52,6 @@
 import android.util.LongSparseArray;
 import android.util.TimingLogger;
 
-import androidx.annotation.Nullable;
-
 import com.android.launcher3.DeviceProfile;
 import com.android.launcher3.InvariantDeviceProfile;
 import com.android.launcher3.LauncherAppState;
@@ -199,12 +197,11 @@
 
         Object traceToken = TraceHelper.INSTANCE.beginSection(TAG);
         TimingLogger logger = new TimingLogger(TAG, "run");
-        LoaderMemoryLogger memoryLogger = new LoaderMemoryLogger();
         try (LauncherModel.LoaderTransaction transaction = mApp.getModel().beginLoader(this)) {
             List<ShortcutInfo> allShortcuts = new ArrayList<>();
             Trace.beginSection("LoadWorkspace");
             try {
-                loadWorkspace(allShortcuts, memoryLogger);
+                loadWorkspace(allShortcuts);
             } finally {
                 Trace.endSection();
             }
@@ -314,13 +311,9 @@
 
             mModelDelegate.modelLoadComplete();
             transaction.commit();
-            memoryLogger.clearLogs();
         } catch (CancellationException e) {
             // Loader stopped, ignore
             logASplit(logger, "Cancelled");
-        } catch (Exception e) {
-            memoryLogger.printLogs();
-            throw e;
         } finally {
             logger.dumpToLog();
         }
@@ -332,21 +325,13 @@
         this.notify();
     }
 
-    private void loadWorkspace(List<ShortcutInfo> allDeepShortcuts, LoaderMemoryLogger logger) {
+    private void loadWorkspace(List<ShortcutInfo> allDeepShortcuts) {
         loadWorkspace(allDeepShortcuts, LauncherSettings.Favorites.CONTENT_URI,
-                null /* selection */, logger);
+                null /* selection */);
     }
 
-    protected void loadWorkspace(
-            List<ShortcutInfo> allDeepShortcuts, Uri contentUri, String selection) {
-        loadWorkspace(allDeepShortcuts, contentUri, selection, null);
-    }
-
-    protected void loadWorkspace(
-            List<ShortcutInfo> allDeepShortcuts,
-            Uri contentUri,
-            String selection,
-            @Nullable LoaderMemoryLogger logger) {
+    protected void loadWorkspace(List<ShortcutInfo> allDeepShortcuts, Uri contentUri,
+            String selection) {
         final Context context = mApp.getContext();
         final ContentResolver contentResolver = context.getContentResolver();
         final PackageManagerHelper pmHelper = new PackageManagerHelper(context);
@@ -650,7 +635,7 @@
                                         }
                                 }
 
-                                c.checkAndAddItem(info, mBgDataModel, logger);
+                                c.checkAndAddItem(info, mBgDataModel);
                             } else {
                                 throw new RuntimeException("Unexpected null WorkspaceItemInfo");
                             }
@@ -669,7 +654,7 @@
                             // no special handling required for restored folders
                             c.markRestored();
 
-                            c.checkAndAddItem(folderInfo, mBgDataModel, logger);
+                            c.checkAndAddItem(folderInfo, mBgDataModel);
                             break;
 
                         case LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET: