Make sure DragLayer layout params are of the correct type

bug 18141419

Change-Id: I50695a62cf9e1f25c054ac2c7197cd056d54cfae
This commit is contained in:
Adam Cohen 2014-10-28 16:16:02 -07:00
parent 09ae4aef52
commit bc927f9c24
2 changed files with 33 additions and 5 deletions

View File

@ -38,6 +38,8 @@ import android.view.animation.Interpolator;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.launcher3.InsettableFrameLayout.LayoutParams;
import java.util.ArrayList;
/**
@ -410,17 +412,43 @@ public class DragLayer extends InsettableFrameLayout {
return mDragController.dispatchUnhandledMove(focused, direction);
}
public static class LayoutParams extends FrameLayout.LayoutParams {
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new LayoutParams(getContext(), attrs);
}
@Override
protected LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
// Override to allow type-checking of LayoutParams.
@Override
protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
return p instanceof LayoutParams;
}
@Override
protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
return new LayoutParams(p);
}
public static class LayoutParams extends InsettableFrameLayout.LayoutParams {
public int x, y;
public boolean customPosition = false;
/**
* {@inheritDoc}
*/
public LayoutParams(Context c, AttributeSet attrs) {
super(c, attrs);
}
public LayoutParams(int width, int height) {
super(width, height);
}
public LayoutParams(ViewGroup.LayoutParams lp) {
super(lp);
}
public void setWidth(int width) {
this.width = width;
}

View File

@ -63,7 +63,7 @@ public class InsettableFrameLayout extends FrameLayout implements
return new LayoutParams(p);
}
class LayoutParams extends FrameLayout.LayoutParams {
public static class LayoutParams extends FrameLayout.LayoutParams {
boolean ignoreInsets = false;
public LayoutParams(Context c, AttributeSet attrs) {