mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 09:26:51 +00:00
auto import from //depot/cupcake/@135843
This commit is contained in:
75
src/com/android/launcher/UserFolder.java
Normal file
75
src/com/android/launcher/UserFolder.java
Normal file
@@ -0,0 +1,75 @@
|
||||
package com.android.launcher;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
/**
|
||||
* Folder which contains applications or shortcuts chosen by the user.
|
||||
*
|
||||
*/
|
||||
public class UserFolder extends Folder implements DropTarget {
|
||||
public UserFolder(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new UserFolder, inflated from R.layout.user_folder.
|
||||
*
|
||||
* @param context The application's context.
|
||||
*
|
||||
* @return A new UserFolder.
|
||||
*/
|
||||
static UserFolder fromXml(Context context) {
|
||||
return (UserFolder) LayoutInflater.from(context).inflate(R.layout.user_folder, null);
|
||||
}
|
||||
|
||||
public boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset,
|
||||
Object dragInfo) {
|
||||
final ItemInfo item = (ItemInfo) dragInfo;
|
||||
final int itemType = item.itemType;
|
||||
return (itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION ||
|
||||
itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT) && item.container != mInfo.id;
|
||||
}
|
||||
|
||||
public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset, Object dragInfo) {
|
||||
final ApplicationInfo item = (ApplicationInfo) dragInfo;
|
||||
//noinspection unchecked
|
||||
((ArrayAdapter<ApplicationInfo>) mContent.getAdapter()).add((ApplicationInfo) dragInfo);
|
||||
LauncherModel.addOrMoveItemInDatabase(mLauncher, item, mInfo.id, 0, 0, 0);
|
||||
}
|
||||
|
||||
public void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, Object dragInfo) {
|
||||
}
|
||||
|
||||
public void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, Object dragInfo) {
|
||||
}
|
||||
|
||||
public void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, Object dragInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDropCompleted(View target, boolean success) {
|
||||
if (success) {
|
||||
//noinspection unchecked
|
||||
ArrayAdapter<ApplicationInfo> adapter =
|
||||
(ArrayAdapter<ApplicationInfo>) mContent.getAdapter();
|
||||
adapter.remove(mDragItem);
|
||||
}
|
||||
}
|
||||
|
||||
void bind(FolderInfo info) {
|
||||
super.bind(info);
|
||||
setContentAdapter(new ApplicationsAdapter(mContext, ((UserFolderInfo) info).contents));
|
||||
}
|
||||
|
||||
// When the folder opens, we need to refresh the GridView's selection by
|
||||
// forcing a layout
|
||||
@Override
|
||||
void onOpen() {
|
||||
super.onOpen();
|
||||
requestFocus();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user