WidgetTray revamp work

- RecyclerView is rendering
- Animation is connected
- Drag and drop is now handled
- UI tweaking: background, margins, more to come.
- Flicker and preview not loading issue:
  fixed height for the horizontal scroll view.
- Shortcuts are added
- Widget Preview loading should support shortPress for drop
- UI tweaks left: overlay of arrow when there are more items to scroll
- icons are added in the section header
- Sorting of widget sections and widget horizontal list
- Adding all the padding constants to dimen.xml file
- RecyclerView should only support one view type

For items to be addressed in follow up patches OR CLs,
TODO is added to the comment.

b/19897708

Change-Id: Ibfc4da1696a23d20bada93db46e126706eb13cdc
This commit is contained in:
Hyunyoung Song
2015-04-08 19:01:34 -07:00
parent 85e3d4cc5e
commit 3f471440a8
46 changed files with 1332 additions and 2069 deletions

View File

@@ -32,6 +32,7 @@ import com.android.launcher3.compat.UserHandleCompat;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.widget.WidgetCell;
import java.lang.ref.WeakReference;
import java.util.Collections;
@@ -45,6 +46,7 @@ import java.util.concurrent.ExecutionException;
public class WidgetPreviewLoader {
private static final String TAG = "WidgetPreviewLoader";
private static final boolean DEBUG = false;
private static final float WIDGET_PREVIEW_ICON_PADDING_PERCENTAGE = 0.25f;
@@ -78,7 +80,7 @@ public class WidgetPreviewLoader {
* @return a request id which can be used to cancel the request.
*/
public PreviewLoadRequest getPreview(final Object o, int previewWidth, int previewHeight,
PagedViewWidget caller, Bitmap[] immediateResult) {
WidgetCell caller, Bitmap[] immediateResult) {
String size = previewWidth + "x" + previewHeight;
WidgetCacheKey key = getObjectKey(o, size);
@@ -576,21 +578,26 @@ public class WidgetPreviewLoader {
private final Object mInfo;
private final int mPreviewHeight;
private final int mPreviewWidth;
private final PagedViewWidget mCaller;
private final WidgetCell mCaller;
PreviewLoadTask(WidgetCacheKey key, Object info, int previewWidth,
int previewHeight, PagedViewWidget caller) {
int previewHeight, WidgetCell caller) {
mKey = key;
mInfo = info;
mPreviewHeight = previewHeight;
mPreviewWidth = previewWidth;
mCaller = caller;
if (DEBUG) {
Log.d(TAG, String.format("%s, %s, %d, %d",
mKey, mInfo, mPreviewHeight, mPreviewWidth));
}
}
@Override
protected Bitmap doInBackground(Void... params) {
Bitmap unusedBitmap = null;
// TODO(hyunyoungs): Figure out why this path causes concurrency issue.
synchronized (mUnusedBitmaps) {
// Check if we can use a bitmap
for (Bitmap candidate : mUnusedBitmaps) {
@@ -608,7 +615,6 @@ public class WidgetPreviewLoader {
mUnusedBitmaps.remove(unusedBitmap);
}
}
if (isCancelled()) {
return null;
}