summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2012-08-30 17:42:57 -0400
committerChris Wren <cwren@android.com>2012-08-31 13:44:34 -0400
commitf61019ceb816fed9e5035c3d9b8451f6e4ee1da9 (patch)
treee5c839e602d66c32cbc585991642bdcb838b2fd1 /src
parent135f525b62eb20c31c593e09f8bdb92215d538a4 (diff)
downloadandroid_packages_screensavers_PhotoTable-f61019ceb816fed9e5035c3d9b8451f6e4ee1da9.tar.gz
android_packages_screensavers_PhotoTable-f61019ceb816fed9e5035c3d9b8451f6e4ee1da9.tar.bz2
android_packages_screensavers_PhotoTable-f61019ceb816fed9e5035c3d9b8451f6e4ee1da9.zip
fix lightsout mode and workaround a multifinger fling bug.
Change-Id: I59b195b4a43de61b19a9bdf98a76e2fa0f705db4
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dreams/phototable/PhotoTable.java10
-rw-r--r--src/com/android/dreams/phototable/PhotoTouchListener.java16
-rw-r--r--src/com/android/dreams/phototable/Table.java4
3 files changed, 20 insertions, 10 deletions
diff --git a/src/com/android/dreams/phototable/PhotoTable.java b/src/com/android/dreams/phototable/PhotoTable.java
index 9f67254..47a80d9 100644
--- a/src/com/android/dreams/phototable/PhotoTable.java
+++ b/src/com/android/dreams/phototable/PhotoTable.java
@@ -28,13 +28,13 @@ public class PhotoTable extends Dream {
public void onStart() {
super.onStart();
setInteractive(true);
- mTable = new Table(this, null);
- setContentView(mTable);
- lightsOut();
}
@Override
- public void onDestroy() {
- super.onDestroy();
+ public void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ mTable = new Table(this, null);
+ setContentView(mTable);
+ lightsOut();
}
}
diff --git a/src/com/android/dreams/phototable/PhotoTouchListener.java b/src/com/android/dreams/phototable/PhotoTouchListener.java
index 488bc13..dd3039b 100644
--- a/src/com/android/dreams/phototable/PhotoTouchListener.java
+++ b/src/com/android/dreams/phototable/PhotoTouchListener.java
@@ -94,7 +94,7 @@ public class PhotoTouchListener implements View.OnTouchListener {
if (!mEnableFling) {
return;
}
- log("fling " + target.getId() + " " + dX + ", " + dY);
+ log("fling " + dX + ", " + dY);
// convert to pixel per frame
dX /= 60f;
@@ -178,6 +178,7 @@ public class PhotoTouchListener implements View.OnTouchListener {
mInitialTargetA = (float) target.getRotation();
}
if (mA == ev.getPointerId(ev.getActionIndex())) {
+ log("primary went up!");
mA = mB;
resetTouch(target);
mB = INVALID_POINTER;
@@ -194,9 +195,15 @@ public class PhotoTouchListener implements View.OnTouchListener {
mInitialTouchY = y;
} else {
float dt = (float) (ev.getEventTime() - mLastEventTime) / 1000f;
- mDX = (x - mLastTouchX) / dt;
- mDY = (y - mLastTouchY) / dt;
- log("moving " + target.getId() + " with velocity: " + mDX + ", " + mDY);
+ float tmpDX = (x - mLastTouchX) / dt;
+ float tmpDY = (y - mLastTouchY) / dt;
+ if (dt > 0f && (Math.abs(tmpDX) > 5f || Math.abs(tmpDY) > 5f)) {
+ // work around odd bug with multi-finger flings
+ mDX = tmpDX;
+ mDY = tmpDY;
+ }
+ log("move " + mDX + ", " + mDY);
+
mLastEventTime = ev.getEventTime();
mLastTouchX = x;
mLastTouchY = y;
@@ -246,6 +253,7 @@ public class PhotoTouchListener implements View.OnTouchListener {
break;
case MotionEvent.ACTION_CANCEL:
+ log("action cancel!");
break;
}
diff --git a/src/com/android/dreams/phototable/Table.java b/src/com/android/dreams/phototable/Table.java
index 0ffa7ac..8fc90bf 100644
--- a/src/com/android/dreams/phototable/Table.java
+++ b/src/com/android/dreams/phototable/Table.java
@@ -66,6 +66,7 @@ public class Table extends FrameLayout {
private final Dream mDream;
private final int mDropPeriod;
private final int mFastDropPeriod;
+ private final int mNowDropDelay;
private final float mImageRatio;
private final float mTableRatio;
private final float mImageRotationLimit;
@@ -94,6 +95,7 @@ public class Table extends FrameLayout {
mInset = mResources.getDimensionPixelSize(R.dimen.photo_inset);
mDropPeriod = mResources.getInteger(R.integer.drop_period);
mFastDropPeriod = mResources.getInteger(R.integer.fast_drop);
+ mNowDropDelay = mResources.getInteger(R.integer.now_drop);
mImageRatio = mResources.getInteger(R.integer.image_ratio) / 1000000f;
mTableRatio = mResources.getInteger(R.integer.table_ratio) / 1000000f;
mImageRotationLimit = (float) mResources.getInteger(R.integer.max_image_rotation);
@@ -299,7 +301,7 @@ public class Table extends FrameLayout {
removeView(photo);
recycle(photo);
if (replace) {
- launch();
+ scheduleNext(mNowDropDelay);
}
}
});