diff options
Diffstat (limited to 'src/com/android')
16 files changed, 123 insertions, 80 deletions
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index 3b3b9bf9f..d5300095b 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -38,7 +38,7 @@ import android.view.ViewParent; import android.widget.TextView; import com.android.launcher3.IconCache.IconLoadRequest; -import com.android.launcher3.widget.PackageItemInfo; +import com.android.launcher3.model.PackageItemInfo; /** * TextView that draws a bubble behind the text. We cannot use a LineBackgroundSpan diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java index 80b542f1d..4cd28c034 100644 --- a/src/com/android/launcher3/ButtonDropTarget.java +++ b/src/com/android/launcher3/ButtonDropTarget.java @@ -16,14 +16,20 @@ package com.android.launcher3; +import android.animation.AnimatorSet; +import android.animation.FloatArrayEvaluator; import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.animation.ValueAnimator.AnimatorUpdateListener; import android.annotation.TargetApi; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Configuration; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; import android.graphics.PointF; import android.graphics.Rect; -import android.graphics.drawable.TransitionDrawable; +import android.graphics.drawable.Drawable; import android.os.Build; import android.util.AttributeSet; import android.view.View; @@ -55,9 +61,11 @@ public abstract class ButtonDropTarget extends TextView protected int mHoverColor = 0; protected ColorStateList mOriginalTextColor; - protected TransitionDrawable mDrawable; + protected Drawable mDrawable; + + private AnimatorSet mCurrentColorAnim; + private ColorMatrix mSrcFilter, mDstFilter, mCurrentFilter; - private ObjectAnimator mCurrentColorAnim; public ButtonDropTarget(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -86,8 +94,7 @@ public abstract class ButtonDropTarget extends TextView protected void setDrawable(int resId) { // We do not set the drawable in the xml as that inflates two drawables corresponding to // drawableLeft and drawableStart. - mDrawable = (TransitionDrawable) getResources().getDrawable(resId); - mDrawable.setCrossFadeEnabled(true); + mDrawable = getResources().getDrawable(resId); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { setCompoundDrawablesRelativeWithIntrinsicBounds(mDrawable, null, null, null); @@ -111,10 +118,13 @@ public abstract class ButtonDropTarget extends TextView public final void onDragEnter(DragObject d) { d.dragView.setColor(mHoverColor); if (Utilities.isLmpOrAbove()) { - mDrawable.startTransition(DragView.COLOR_CHANGE_DURATION); animateTextColor(mHoverColor); } else { - mDrawable.startTransition(0); + if (mCurrentFilter == null) { + mCurrentFilter = new ColorMatrix(); + } + DragView.setColorScale(mHoverColor, mCurrentFilter); + mDrawable.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter)); setTextColor(mHoverColor); } } @@ -124,12 +134,11 @@ public abstract class ButtonDropTarget extends TextView // Do nothing } - protected void resetHoverColor() { + protected void resetHoverColor() { if (Utilities.isLmpOrAbove()) { - mDrawable.reverseTransition(DragView.COLOR_CHANGE_DURATION); animateTextColor(mOriginalTextColor.getDefaultColor()); } else { - mDrawable.resetTransition(); + mDrawable.setColorFilter(null); setTextColor(mOriginalTextColor); } } @@ -139,8 +148,32 @@ public abstract class ButtonDropTarget extends TextView if (mCurrentColorAnim != null) { mCurrentColorAnim.cancel(); } - mCurrentColorAnim = ObjectAnimator.ofArgb(this, "textColor", targetColor); + + mCurrentColorAnim = new AnimatorSet(); mCurrentColorAnim.setDuration(DragView.COLOR_CHANGE_DURATION); + + if (mSrcFilter == null) { + mSrcFilter = new ColorMatrix(); + mDstFilter = new ColorMatrix(); + mCurrentFilter = new ColorMatrix(); + } + + DragView.setColorScale(getTextColor(), mSrcFilter); + DragView.setColorScale(targetColor, mDstFilter); + ValueAnimator anim1 = ValueAnimator.ofObject( + new FloatArrayEvaluator(mCurrentFilter.getArray()), + mSrcFilter.getArray(), mDstFilter.getArray()); + anim1.addUpdateListener(new AnimatorUpdateListener() { + + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mDrawable.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter)); + invalidate(); + } + }); + + mCurrentColorAnim.play(anim1); + mCurrentColorAnim.play(ObjectAnimator.ofArgb(this, "textColor", targetColor)); mCurrentColorAnim.start(); } @@ -155,10 +188,10 @@ public abstract class ButtonDropTarget extends TextView } } - @Override + @Override public final void onDragStart(DragSource source, Object info, int dragAction) { mActive = supportsDrop(source, info); - mDrawable.resetTransition(); + mDrawable.setColorFilter(null); if (mCurrentColorAnim != null) { mCurrentColorAnim.cancel(); mCurrentColorAnim = null; diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java index 08186f517..fa6e74fd1 100644 --- a/src/com/android/launcher3/DeleteDropTarget.java +++ b/src/com/android/launcher3/DeleteDropTarget.java @@ -43,7 +43,7 @@ public class DeleteDropTarget extends ButtonDropTarget { // Get the hover color mHoverColor = getResources().getColor(R.color.delete_target_hover_tint); - setDrawable(R.drawable.remove_target_selector); + setDrawable(R.drawable.ic_launcher_remove_normal); } public static boolean supportsDrop(Object info) { diff --git a/src/com/android/launcher3/DragView.java b/src/com/android/launcher3/DragView.java index 120299e1d..b3323384d 100644 --- a/src/com/android/launcher3/DragView.java +++ b/src/com/android/launcher3/DragView.java @@ -38,7 +38,7 @@ import com.android.launcher3.util.Thunk; import java.util.Arrays; public class DragView extends View { - public static int COLOR_CHANGE_DURATION = 200; + public static int COLOR_CHANGE_DURATION = 120; @Thunk static float sDragAlpha = 1f; @@ -249,8 +249,7 @@ public class DragView extends View { m1.setSaturation(0); ColorMatrix m2 = new ColorMatrix(); - m2.setScale(Color.red(color) / 255f, Color.green(color) / 255f, - Color.blue(color) / 255f, Color.alpha(color) / 255f); + setColorScale(color, m2); m1.postConcat(m2); if (Utilities.isLmpOrAbove()) { @@ -355,4 +354,9 @@ public class DragView extends View { mDragLayer.removeView(DragView.this); } } + + public static void setColorScale(int color, ColorMatrix target) { + target.setScale(Color.red(color) / 255f, Color.green(color) / 255f, + Color.blue(color) / 255f, Color.alpha(color) / 255f); + } } diff --git a/src/com/android/launcher3/FolderInfo.java b/src/com/android/launcher3/FolderInfo.java index 930f91103..aea21c95b 100644 --- a/src/com/android/launcher3/FolderInfo.java +++ b/src/com/android/launcher3/FolderInfo.java @@ -92,7 +92,7 @@ public class FolderInfo extends ItemInfo { } public void setTitle(CharSequence title) { - this.title = Utilities.trim(title); + this.title = title; for (int i = 0; i < listeners.size(); i++) { listeners.get(i).onTitleChanged(title); } diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index ac257b5c3..8b5f747f2 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -43,9 +43,9 @@ import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.Thunk; -import com.android.launcher3.widget.PackageItemInfo; import java.util.HashMap; import java.util.HashSet; diff --git a/src/com/android/launcher3/InfoDropTarget.java b/src/com/android/launcher3/InfoDropTarget.java index f3383ccea..0f139fa98 100644 --- a/src/com/android/launcher3/InfoDropTarget.java +++ b/src/com/android/launcher3/InfoDropTarget.java @@ -41,7 +41,7 @@ public class InfoDropTarget extends ButtonDropTarget { // Get the hover color mHoverColor = getResources().getColor(R.color.info_target_hover_tint); - setDrawable(R.drawable.info_target_selector); + setDrawable(R.drawable.ic_launcher_info_normal); } public static void startDetailsActivityForInfo(Object info, Launcher launcher) { diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 7b7b61795..59ca97865 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -102,6 +102,7 @@ import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.util.LongArrayMap; import com.android.launcher3.util.Thunk; import com.android.launcher3.widget.PendingAddWidgetInfo; @@ -268,8 +269,9 @@ public class Launcher extends Activity // Main container view for the all apps screen. @Thunk AppsContainerView mAppsView; - // Main container view for the widget tray screen. - private WidgetsContainerView mWidgetsView; + // Main container view and the model for the widget tray screen. + @Thunk WidgetsContainerView mWidgetsView; + @Thunk WidgetsModel mWidgetsModel; private boolean mAutoAdvanceRunning = false; private AppWidgetHostView mQsb; @@ -4365,23 +4367,22 @@ public class Launcher extends Activity } } - @Thunk ArrayList<Object> mWidgetsAndShortcuts; private Runnable mBindPackagesUpdatedRunnable = new Runnable() { public void run() { - bindAllPackages(mWidgetsAndShortcuts); + bindAllPackages(mWidgetsModel); } }; @Override - public void bindAllPackages(final ArrayList<Object> widgetsAndShortcuts) { + public void bindAllPackages(final WidgetsModel model) { if (waitUntilResume(mBindPackagesUpdatedRunnable, true)) { - mWidgetsAndShortcuts = widgetsAndShortcuts; + mWidgetsModel = model; return; } - if (mWidgetsView != null && widgetsAndShortcuts != null) { - mWidgetsView.addWidgets(widgetsAndShortcuts, getPackageManager()); - mWidgetsAndShortcuts = null; + if (mWidgetsView != null && model != null) { + mWidgetsView.addWidgets(model); + mWidgetsModel = null; } } diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 9deee43d4..d994dc77c 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -58,6 +58,7 @@ import com.android.launcher3.compat.PackageInstallerCompat; import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.LongArrayMap; import com.android.launcher3.util.ManagedProfileHeuristic; @@ -203,7 +204,7 @@ public class LauncherModel extends BroadcastReceiver public void bindRestoreItemsChange(HashSet<ItemInfo> updates); public void bindComponentsRemoved(ArrayList<String> packageNames, ArrayList<AppInfo> appInfos, UserHandleCompat user, int reason); - public void bindAllPackages(ArrayList<Object> widgetsAndShortcuts); + public void bindAllPackages(WidgetsModel model); public void bindSearchablesChanged(); public boolean isAllAppsButtonRank(int rank); public void onPageBoundSynchronously(int page); @@ -968,7 +969,8 @@ public class LauncherModel extends BroadcastReceiver break; } - folderInfo.title = Utilities.trim(c.getString(titleIndex)); + // Do not trim the folder label, as is was set by the user. + folderInfo.title = c.getString(titleIndex); folderInfo.id = id; folderInfo.container = c.getInt(containerIndex); folderInfo.screenId = c.getInt(screenIndex); @@ -2110,7 +2112,8 @@ public class LauncherModel extends BroadcastReceiver id = c.getLong(idIndex); FolderInfo folderInfo = findOrMakeFolder(sBgFolders, id); - folderInfo.title = Utilities.trim(c.getString(titleIndex)); + // Do not trim the folder label, as is was set by the user. + folderInfo.title = c.getString(titleIndex); folderInfo.id = id; container = c.getInt(containerIndex); folderInfo.container = container; @@ -3334,18 +3337,19 @@ public class LauncherModel extends BroadcastReceiver runOnWorkerThread(new Runnable(){ @Override public void run() { - final ArrayList<Object> list = getWidgetsAndShortcuts(context, refresh); + final WidgetsModel model = createWidgetsModel(context, refresh); mHandler.post(new Runnable() { @Override public void run() { Callbacks cb = getCallback(); if (callbacks == cb && cb != null) { - callbacks.bindAllPackages(list); + callbacks.bindAllPackages(model); } } }); // update the Widget entries inside DB on the worker thread. - LauncherAppState.getInstance().getWidgetCache().removeObsoletePreviews(list); + LauncherAppState.getInstance().getWidgetCache().removeObsoletePreviews( + model.getRawList()); } }); } @@ -3355,13 +3359,15 @@ public class LauncherModel extends BroadcastReceiver * * @see #loadAndBindWidgetsAndShortcuts */ - private ArrayList<Object> getWidgetsAndShortcuts(Context context, boolean refresh) { + private WidgetsModel createWidgetsModel(Context context, boolean refresh) { PackageManager packageManager = context.getPackageManager(); final ArrayList<Object> widgetsAndShortcuts = new ArrayList<Object>(); widgetsAndShortcuts.addAll(getWidgetProviders(context, refresh)); Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); widgetsAndShortcuts.addAll(packageManager.queryIntentActivities(shortcutsIntent, 0)); - return widgetsAndShortcuts; + WidgetsModel model = new WidgetsModel(context); + model.addWidgetsAndShortcuts(widgetsAndShortcuts); + return model; } @Thunk static boolean isPackageDisabled(Context context, String packageName, diff --git a/src/com/android/launcher3/UninstallDropTarget.java b/src/com/android/launcher3/UninstallDropTarget.java index 0fc8f324a..419939000 100644 --- a/src/com/android/launcher3/UninstallDropTarget.java +++ b/src/com/android/launcher3/UninstallDropTarget.java @@ -28,7 +28,7 @@ public class UninstallDropTarget extends ButtonDropTarget { // Get the hover color mHoverColor = getResources().getColor(R.color.uninstall_target_hover_tint); - setDrawable(R.drawable.uninstall_target_selector); + setDrawable(R.drawable.ic_launcher_uninstall_normal); } @Override diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 6734fdc0d..1f8a6f2a5 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -44,6 +44,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; import android.os.Build; +import android.os.Process; import android.util.Log; import android.util.Pair; import android.util.SparseArray; @@ -57,6 +58,8 @@ import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; +import junit.framework.Assert; + /** * Various utilities shared amongst the Launcher's classes. */ @@ -641,4 +644,10 @@ public final class Utilities { return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) && (res.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL); } + + public static void assertWorkerThread() { + if (LauncherAppState.isDogfoodBuild()) { + Assert.assertTrue(LauncherModel.sWorkerThread.getThreadId() == Process.myTid()); + } + } } diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java index bbcdaae39..5ee1f2615 100644 --- a/src/com/android/launcher3/WidgetPreviewLoader.java +++ b/src/com/android/launcher3/WidgetPreviewLoader.java @@ -206,8 +206,7 @@ public class WidgetPreviewLoader { * This ensures that we remove entries for packages which changed while the launcher was dead. */ public void removeObsoletePreviews(ArrayList<Object> list) { - // This method should always be called from the worker thread. - Assert.assertTrue(LauncherModel.sWorkerThread.getThreadId() == Process.myTid()); + Utilities.assertWorkerThread(); LongSparseArray<UserHandleCompat> userIdCache = new LongSparseArray<>(); LongSparseArray<HashSet<String>> validPackages = new LongSparseArray<>(); diff --git a/src/com/android/launcher3/widget/PackageItemInfo.java b/src/com/android/launcher3/model/PackageItemInfo.java index 8f45a7754..0f0134ae3 100644 --- a/src/com/android/launcher3/widget/PackageItemInfo.java +++ b/src/com/android/launcher3/model/PackageItemInfo.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.launcher3.widget; +package com.android.launcher3.model; import android.content.ComponentName; import android.graphics.Bitmap; diff --git a/src/com/android/launcher3/widget/WidgetsModel.java b/src/com/android/launcher3/model/WidgetsModel.java index 5a920e8d4..b72b98126 100644 --- a/src/com/android/launcher3/widget/WidgetsModel.java +++ b/src/com/android/launcher3/model/WidgetsModel.java @@ -1,18 +1,19 @@ -package com.android.launcher3.widget; +package com.android.launcher3.model; import android.content.Context; -import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.support.v7.widget.RecyclerView; +import android.os.Handler; +import android.os.Process; import android.util.Log; import com.android.launcher3.IconCache; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppWidgetProviderInfo; + +import com.android.launcher3.LauncherModel; +import com.android.launcher3.Utilities; import com.android.launcher3.compat.UserHandleCompat; -import com.android.launcher3.model.AppNameComparator; -import com.android.launcher3.model.WidgetsAndShortcutNameComparator; import java.util.ArrayList; import java.util.Collections; @@ -37,19 +38,19 @@ public class WidgetsModel { /* Map of widgets and shortcuts that are tracked per package. */ private Map<PackageItemInfo, ArrayList<Object>> mWidgetsList = new HashMap<>(); - /* Notifies the adapter when data changes. */ - private RecyclerView.Adapter mAdapter; + private ArrayList<Object> mRawList; - private Comparator mWidgetAndShortcutNameComparator; - private Comparator mAppNameComparator; + private final Comparator mWidgetAndShortcutNameComparator; + private final Comparator mAppNameComparator; - private IconCache mIconCache; + private final IconCache mIconCache; + private final Handler mWorkerHandler; - public WidgetsModel(Context context, RecyclerView.Adapter adapter) { - mAdapter = adapter; + public WidgetsModel(Context context) { mWidgetAndShortcutNameComparator = new WidgetsAndShortcutNameComparator(context); mAppNameComparator = (new AppNameComparator(context)).getAppInfoComparator(); mIconCache = LauncherAppState.getInstance().getIconCache(); + mWorkerHandler = new Handler(LauncherModel.getWorkerLooper()); } // Access methods that may be deleted if the private fields are made package-private. @@ -66,9 +67,15 @@ public class WidgetsModel { return mWidgetsList.get(mPackageItemInfos.get(pos)); } - public void addWidgetsAndShortcuts(ArrayList<Object> widgetsShortcuts, PackageManager pm) { + public ArrayList<Object> getRawList() { + return mRawList; + } + + public void addWidgetsAndShortcuts(ArrayList<Object> rawWidgetsShortcuts) { + Utilities.assertWorkerThread(); + mRawList = rawWidgetsShortcuts; if (DEBUG) { - Log.d(TAG, "addWidgetsAndShortcuts, widgetsShortcuts#=" + widgetsShortcuts.size()); + Log.d(TAG, "addWidgetsAndShortcuts, widgetsShortcuts#=" + rawWidgetsShortcuts.size()); } // Temporary list for {@link PackageItemInfos} to avoid having to go through @@ -80,7 +87,7 @@ public class WidgetsModel { mPackageItemInfos.clear(); // add and update. - for (Object o: widgetsShortcuts) { + for (Object o: rawWidgetsShortcuts) { String packageName = ""; if (o instanceof LauncherAppWidgetProviderInfo) { LauncherAppWidgetProviderInfo widgetInfo = (LauncherAppWidgetProviderInfo) o; @@ -100,10 +107,9 @@ public class WidgetsModel { } else { widgetsShortcutsList = new ArrayList<Object>(); widgetsShortcutsList.add(o); - pInfo = new PackageItemInfo(packageName); mIconCache.getTitleAndIconForApp(packageName, UserHandleCompat.myUserHandle(), - true /* useLowResIcon */, pInfo); + true /* userLowResIcon */, pInfo); mWidgetsList.put(pInfo, widgetsShortcutsList); tmpPackageItemInfos.put(packageName, pInfo); mPackageItemInfos.add(pInfo); @@ -115,8 +121,5 @@ public class WidgetsModel { for (PackageItemInfo p: mPackageItemInfos) { Collections.sort(mWidgetsList.get(p), mWidgetAndShortcutNameComparator); } - - // notify. - mAdapter.notifyDataSetChanged(); } }
\ No newline at end of file diff --git a/src/com/android/launcher3/widget/WidgetsContainerView.java b/src/com/android/launcher3/widget/WidgetsContainerView.java index 7a7895ff8..5a879faa0 100644 --- a/src/com/android/launcher3/widget/WidgetsContainerView.java +++ b/src/com/android/launcher3/widget/WidgetsContainerView.java @@ -17,7 +17,6 @@ package com.android.launcher3.widget; import android.content.Context; -import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.drawable.Drawable; @@ -36,6 +35,7 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.DragController; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget.DragObject; +import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.Folder; import com.android.launcher3.IconCache; import com.android.launcher3.ItemInfo; @@ -47,8 +47,6 @@ import com.android.launcher3.Utilities; import com.android.launcher3.WidgetPreviewLoader; import com.android.launcher3.Workspace; -import java.util.ArrayList; - /** * The widgets list view container. */ @@ -68,9 +66,6 @@ public class WidgetsContainerView extends BaseContainerView private DragController mDragController; private IconCache mIconCache; - /* Data model for the widget */ - private WidgetsModel mWidgets; - /* Recycler view related member variables */ private RecyclerView mView; private WidgetsListAdapter mAdapter; @@ -98,8 +93,6 @@ public class WidgetsContainerView extends BaseContainerView mDragController = mLauncher.getDragController(); mWidgetHostViewLoader = new WidgetHostViewLoader(mLauncher); mAdapter = new WidgetsListAdapter(context, this, this, mLauncher); - mWidgets = new WidgetsModel(context, mAdapter); - mAdapter.setWidgetsModel(mWidgets); mIconCache = (LauncherAppState.getInstance()).getIconCache(); if (DEBUG) { @@ -109,10 +102,6 @@ public class WidgetsContainerView extends BaseContainerView @Override protected void onFinishInflate() { - if (DEBUG) { - Log.d(TAG, String.format("onFinishInflate [widgets size=%d]", - mWidgets.getPackageSize())); - } mView = (RecyclerView) findViewById(R.id.widgets_list_view); mView.setAdapter(mAdapter); @@ -145,10 +134,6 @@ public class WidgetsContainerView extends BaseContainerView public void scrollToTop() { mView.scrollToPosition(0); - if (DEBUG) { - Log.d(TAG, String.format("scrollToTop, [widgets size=%d]", - mWidgets.getPackageSize())); - } } // @@ -374,8 +359,9 @@ public class WidgetsContainerView extends BaseContainerView /** * Initialize the widget data model. */ - public void addWidgets(ArrayList<Object> widgetsShortcuts, PackageManager pm) { - mWidgets.addWidgetsAndShortcuts(widgetsShortcuts, pm); + public void addWidgets(WidgetsModel model) { + mAdapter.setWidgetsModel(model); + mAdapter.notifyDataSetChanged(); } private WidgetPreviewLoader getWidgetPreviewLoader() { diff --git a/src/com/android/launcher3/widget/WidgetsListAdapter.java b/src/com/android/launcher3/widget/WidgetsListAdapter.java index 3916c00d2..918ec1bda 100644 --- a/src/com/android/launcher3/widget/WidgetsListAdapter.java +++ b/src/com/android/launcher3/widget/WidgetsListAdapter.java @@ -38,6 +38,8 @@ import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.R; import com.android.launcher3.WidgetPreviewLoader; +import com.android.launcher3.model.PackageItemInfo; +import com.android.launcher3.model.WidgetsModel; import java.util.List; |