Update to scroll the wallpaper.
This commit is contained in:
parent
b1b69f53a8
commit
8f573952b8
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.launcher2;
|
package com.android.launcher2;
|
||||||
|
|
||||||
|
import android.app.WallpaperManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
@ -52,6 +53,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||||
*/
|
*/
|
||||||
private static final int SNAP_VELOCITY = 1000;
|
private static final int SNAP_VELOCITY = 1000;
|
||||||
|
|
||||||
|
private final WallpaperManager mWallpaperManager;
|
||||||
|
|
||||||
private int mDefaultScreen;
|
private int mDefaultScreen;
|
||||||
|
|
||||||
private boolean mFirstLayout = true;
|
private boolean mFirstLayout = true;
|
||||||
|
@ -126,6 +129,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||||
public Workspace(Context context, AttributeSet attrs, int defStyle) {
|
public Workspace(Context context, AttributeSet attrs, int defStyle) {
|
||||||
super(context, attrs, defStyle);
|
super(context, attrs, defStyle);
|
||||||
|
|
||||||
|
mWallpaperManager = WallpaperManager.getInstance(context);
|
||||||
|
|
||||||
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0);
|
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0);
|
||||||
mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);
|
mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);
|
||||||
a.recycle();
|
a.recycle();
|
||||||
|
@ -450,11 +455,18 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateWallpaperOffset() {
|
||||||
|
int scrollRange = getChildAt(getChildCount()-1).getRight()-getWidth();
|
||||||
|
mWallpaperManager.setWallpaperOffsets(getWindowToken(),
|
||||||
|
mScrollX/(float)scrollRange, 0);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void computeScroll() {
|
public void computeScroll() {
|
||||||
if (mScroller.computeScrollOffset()) {
|
if (mScroller.computeScrollOffset()) {
|
||||||
mScrollX = mScroller.getCurrX();
|
mScrollX = mScroller.getCurrX();
|
||||||
mScrollY = mScroller.getCurrY();
|
mScrollY = mScroller.getCurrY();
|
||||||
|
updateWallpaperOffset();
|
||||||
postInvalidate();
|
postInvalidate();
|
||||||
} else if (mNextScreen != INVALID_SCREEN) {
|
} else if (mNextScreen != INVALID_SCREEN) {
|
||||||
mCurrentScreen = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
|
mCurrentScreen = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
|
||||||
|
@ -769,12 +781,14 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
|
||||||
if (deltaX < 0) {
|
if (deltaX < 0) {
|
||||||
if (mScrollX > 0) {
|
if (mScrollX > 0) {
|
||||||
scrollBy(Math.max(-mScrollX, deltaX), 0);
|
scrollBy(Math.max(-mScrollX, deltaX), 0);
|
||||||
|
updateWallpaperOffset();
|
||||||
}
|
}
|
||||||
} else if (deltaX > 0) {
|
} else if (deltaX > 0) {
|
||||||
final int availableToScroll = getChildAt(getChildCount() - 1).getRight() -
|
final int availableToScroll = getChildAt(getChildCount() - 1).getRight() -
|
||||||
mScrollX - getWidth();
|
mScrollX - getWidth();
|
||||||
if (availableToScroll > 0) {
|
if (availableToScroll > 0) {
|
||||||
scrollBy(Math.min(availableToScroll, deltaX), 0);
|
scrollBy(Math.min(availableToScroll, deltaX), 0);
|
||||||
|
updateWallpaperOffset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue