From 6a706b1dd72a03fe6c6b4c2a5a6df0e782c70936 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 22 Sep 2015 16:56:55 -0700 Subject: [PATCH] Preventing nullpointer exception when cloning rawList Bug: 24299525 Change-Id: I92018a3da7d75afc2c6997302f8e0492eb78e62f --- src/com/android/launcher3/model/WidgetsModel.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/com/android/launcher3/model/WidgetsModel.java b/src/com/android/launcher3/model/WidgetsModel.java index eef4f9173..99a53ff36 100644 --- a/src/com/android/launcher3/model/WidgetsModel.java +++ b/src/com/android/launcher3/model/WidgetsModel.java @@ -34,19 +34,19 @@ public class WidgetsModel { private static final boolean DEBUG = false; /* List of packages that is tracked by this model. */ - private ArrayList mPackageItemInfos = new ArrayList<>(); + private final ArrayList mPackageItemInfos; /* Map of widgets and shortcuts that are tracked per package. */ - private HashMap> mWidgetsList = new HashMap<>(); - - private ArrayList mRawList; + private final HashMap> mWidgetsList; private final AppWidgetManagerCompat mAppWidgetMgr; private final WidgetsAndShortcutNameComparator mWidgetAndShortcutNameComparator; private final Comparator mAppNameComparator; private final IconCache mIconCache; private final AppFilter mAppFilter; - private AlphabeticIndexCompat mIndexer; + private final AlphabeticIndexCompat mIndexer; + + private ArrayList mRawList; public WidgetsModel(Context context, IconCache iconCache, AppFilter appFilter) { mAppWidgetMgr = AppWidgetManagerCompat.getInstance(context); @@ -55,6 +55,10 @@ public class WidgetsModel { mIconCache = iconCache; mAppFilter = appFilter; mIndexer = new AlphabeticIndexCompat(context); + mPackageItemInfos = new ArrayList<>(); + mWidgetsList = new HashMap<>(); + + mRawList = new ArrayList<>(); } @SuppressWarnings("unchecked") @@ -62,18 +66,16 @@ public class WidgetsModel { mAppWidgetMgr = model.mAppWidgetMgr; mPackageItemInfos = (ArrayList) model.mPackageItemInfos.clone(); mWidgetsList = (HashMap>) model.mWidgetsList.clone(); - mRawList = (ArrayList) model.mRawList.clone(); mWidgetAndShortcutNameComparator = model.mWidgetAndShortcutNameComparator; mAppNameComparator = model.mAppNameComparator; mIconCache = model.mIconCache; mAppFilter = model.mAppFilter; + mIndexer = model.mIndexer; + mRawList = (ArrayList) model.mRawList.clone(); } // Access methods that may be deleted if the private fields are made package-private. public int getPackageSize() { - if (mPackageItemInfos == null) { - return 0; - } return mPackageItemInfos.size(); } -- 2.11.0