diff --git a/packages/SystemUI/res/drawable-mdpi/pocket_drag_pattern.png b/packages/SystemUI/res/drawable-mdpi/pocket_drag_pattern.png
new file mode 100644
index 0000000000000..abde010d4c8c0
Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/pocket_drag_pattern.png differ
diff --git a/packages/SystemUI/res/drawable/pocket_drag_bg.xml b/packages/SystemUI/res/drawable/pocket_drag_bg.xml
new file mode 100644
index 0000000000000..573a7029b6b4c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/pocket_drag_bg.xml
@@ -0,0 +1,21 @@
+
+
+
+
diff --git a/packages/SystemUI/res/layout-xlarge/status_bar.xml b/packages/SystemUI/res/layout-xlarge/status_bar.xml
index 6c173c932b3d0..b97b9ca13dd6c 100644
--- a/packages/SystemUI/res/layout-xlarge/status_bar.xml
+++ b/packages/SystemUI/res/layout-xlarge/status_bar.xml
@@ -91,6 +91,15 @@
+
+
+
+
+
0) {
// TODO: figure out how to visualize every kind of ClipData!
- mAltText.setText(mClipping.getItemAt(0).coerceToText(getContext()));
+ //mAltText.setText(mClipping.getItemAt(0).coerceToText(getContext()));
}
}
+ } else {
+ setVisibility(View.GONE);
}
}
+ @Override
+ public boolean onTouchEvent(MotionEvent ev) {
+ final int action = ev.getAction();
+ if (action == MotionEvent.ACTION_DOWN) {
+ final ClipData clip = mClipping;
+ if (clip != null) {
+ final Bitmap icon = clip.getIcon();
+ DragShadowBuilder shadow;
+ if (icon != null) {
+ shadow = new DragShadowBuilder(this) {
+ public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
+ shadowSize.set(icon.getWidth(), icon.getHeight());
+ shadowTouchPoint.set(shadowSize.x / 2, shadowSize.y / 2);
+ }
+ public void onDrawShadow(Canvas canvas) {
+ canvas.drawBitmap(icon, 0, 0, new Paint());
+ }
+ };
+ } else {
+ // uhhh, what now?
+ shadow = new DragShadowBuilder(this);
+ }
+
+ startDrag(clip, shadow, null, 0);
+
+ // TODO: only discard the clipping if it was accepted
+ stash(null);
+
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
private boolean isInViewContentArea(View v, int x, int y) {
final int l = v.getPaddingLeft();
final int r = v.getWidth() - v.getPaddingRight();
@@ -167,38 +231,12 @@ public class ShirtPocket extends ImageView {
// TODO: only discard the clipping if it was accepted
stash(null);
- hideWindowInJustASec(); // will refresh the icon
-
return true;
}
}
return false;
}
};
-
- public boolean onDragEvent(DragEvent event) {
- if (DEBUG) Slog.d(TAG, "onDragEvent: " + event);
- switch (event.getAction()) {
- // We want to appear whenever a potential drag takes off from anywhere in the UI.
- case DragEvent.ACTION_DRAG_STARTED:
- // XXX: TODO
- break;
- case DragEvent.ACTION_DRAG_ENTERED:
- if (DEBUG) Slog.d(TAG, "entered!");
- // XXX: TODO
- break;
- case DragEvent.ACTION_DRAG_EXITED:
- if (DEBUG) Slog.d(TAG, "exited!");
- setVisibility(mClipping == null ? View.GONE : View.VISIBLE);
- break;
- case DragEvent.ACTION_DROP:
- if (DEBUG) Slog.d(TAG, "dropped!");
- stash(event.getClipData());
- break;
- case DragEvent.ACTION_DRAG_ENDED:
- break;
- }
- return true; // we want everything, thank you
- }
+ */
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index 7a13fded41b97..bb0d3e117bf3e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -392,6 +392,11 @@ public class TabletStatusBar extends StatusBar implements
// for redirecting errant bar taps to the IME
mFakeSpaceBar = sb.findViewById(R.id.fake_space_bar);
+ // drag and drop pocket
+ ShirtPocket p = (ShirtPocket) sb.findViewById(R.id.shirt_pocket);
+ ShirtPocket.DropZone z = (ShirtPocket.DropZone) sb.findViewById(R.id.drop_target);
+ z.setPocket(p);
+
// "shadows" of the status bar features, for lights-out mode
mShadow = sb.findViewById(R.id.bar_shadow);
mShadow.setOnTouchListener(