summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/PhotoPageBottomControls.java3
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java30
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java24
-rw-r--r--src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java7
-rw-r--r--src/com/android/gallery3d/ui/TiledTexture.java18
5 files changed, 63 insertions, 19 deletions
diff --git a/src/com/android/gallery3d/app/PhotoPageBottomControls.java b/src/com/android/gallery3d/app/PhotoPageBottomControls.java
index 415111fb9..24b8ceb7e 100644
--- a/src/com/android/gallery3d/app/PhotoPageBottomControls.java
+++ b/src/com/android/gallery3d/app/PhotoPageBottomControls.java
@@ -116,10 +116,11 @@ public class PhotoPageBottomControls implements OnClickListener {
control.startAnimation(getControlAnimForVisibility(curVisibility));
}
control.setVisibility(curVisibility ? View.VISIBLE : View.INVISIBLE);
- control.requestLayout(); // Kick framework to draw the control.
mControlsVisible.put(control, curVisibility);
}
}
+ // Force a layout change
+ mContainer.requestLayout(); // Kick framework to draw the control.
}
public void cleanup() {
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 02acaeab1..1ed45eda2 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -145,6 +145,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
private static final int SEEK_BAR_MAX = 600;
private LoadBitmapTask mLoadBitmapTask;
+ private ImageSmallFilter mNullFxFilter;
+ private ImageSmallFilter mNullBorderFilter;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -663,17 +665,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
ImagePreset preset = new ImagePreset(getString(R.string.history_original)); // empty
preset.setImageLoader(mImageLoader);
- ImageSmallFilter filter = new ImageSmallFilter(this);
+ mNullFxFilter = new ImageSmallFilter(this);
- filter.setSelected(true);
- mCurrentImageSmallFilter = filter;
+ mNullFxFilter.setSelected(true);
+ mCurrentImageSmallFilter = mNullFxFilter;
- filter.setImageFilter(new ImageFilterFx(null, getString(R.string.none)));
+ mNullFxFilter.setImageFilter(new ImageFilterFx(null, getString(R.string.none)));
- filter.setController(this);
- filter.setImageLoader(mImageLoader);
- listFilters.addView(filter);
- ImageSmallFilter previousFilter = filter;
+ mNullFxFilter.setController(this);
+ mNullFxFilter.setImageLoader(mImageLoader);
+ listFilters.addView(mNullFxFilter);
+ ImageSmallFilter previousFilter = mNullFxFilter;
BitmapFactory.Options o = new BitmapFactory.Options();
o.inScaled = false;
@@ -682,11 +684,12 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
Bitmap b = BitmapFactory.decodeResource(getResources(), drawid[i], o);
fxArray[p++] = new ImageFilterFx(b, getString(fxNameid[i]));
}
-
+ ImageSmallFilter filter;
for (int i = 0; i < p; i++) {
filter = new ImageSmallFilter(this);
filter.setImageFilter(fxArray[i]);
filter.setController(this);
+ filter.setNulfilter(mNullFxFilter);
filter.setImageLoader(mImageLoader);
listFilters.addView(filter);
previousFilter = filter;
@@ -717,6 +720,11 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
ImageSmallFilter previousFilter = null;
for (int i = 0; i < p; i++) {
ImageSmallBorder filter = new ImageSmallBorder(this);
+ if (i == 0) { // save the first to reset it
+ mNullBorderFilter = filter;
+ } else {
+ filter.setNulfilter(mNullBorderFilter);
+ }
borders[i].setName(getString(R.string.borders));
filter.setImageFilter(borders[i]);
filter.setController(this);
@@ -852,6 +860,9 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
}
private void resetHistory() {
+ mNullFxFilter.onClick(mNullFxFilter);
+ mNullBorderFilter.onClick(mNullBorderFilter);
+
HistoryAdapter adapter = mImageShow.getHistory();
adapter.reset();
ImagePreset original = new ImagePreset(adapter.getItem(0));
@@ -865,6 +876,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
return new View.OnClickListener() {
@Override
public void onClick(View v) {
+
resetHistory();
}
};
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
index 71a69c3f8..6a79e18a1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java
@@ -45,6 +45,7 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener
protected static int mBackgroundColor = Color.BLUE;
protected final int mSelectedBackgroundColor = Color.WHITE;
protected final int mTextColor = Color.WHITE;
+ private ImageSmallFilter mNullFilter;
public static void setMargin(int value) {
mMargin = value;
@@ -100,13 +101,32 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener
setMeasuredDimension(parentHeight - h, parentHeight);
}
+ /**
+ * Setting the nullFilter implies that the behavior of the button is toggle
+ *
+ * @param nullFilter
+ */
+ public void setNulfilter(ImageSmallFilter nullFilter) {
+ mNullFilter = nullFilter;
+ }
+
@Override
public void onClick(View v) {
if (mController != null) {
if (mImageFilter != null) {
- mController.useImageFilter(this, mImageFilter, mSetBorder);
+ if (mIsSelected && mNullFilter != null) {
+ mNullFilter.onClick(v);
+ }
+ else {
+ mController.useImageFilter(this, mImageFilter, mSetBorder);
+ }
} else if (mImagePreset != null) {
- mController.useImagePreset(this, mImagePreset);
+ if (mIsSelected && mNullFilter != null) {
+ mNullFilter.onClick(v);
+ }
+ else {
+ mController.useImagePreset(this, mImagePreset);
+ }
}
}
}
diff --git a/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java b/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
index 7cb894845..ceed71abe 100644
--- a/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
+++ b/src/com/android/gallery3d/ui/SurfaceTextureScreenNail.java
@@ -85,6 +85,13 @@ public abstract class SurfaceTextureScreenNail implements ScreenNail,
mHeight = height;
}
+ public void resizeTexture() {
+ if (mExtTexture != null) {
+ mExtTexture.setSize(mWidth, mHeight);
+ setDefaultBufferSize(mSurfaceTexture, mWidth, mHeight);
+ }
+ }
+
@Override
public int getWidth() {
return mWidth;
diff --git a/src/com/android/gallery3d/ui/TiledTexture.java b/src/com/android/gallery3d/ui/TiledTexture.java
index 8e26221bc..ce3fcc617 100644
--- a/src/com/android/gallery3d/ui/TiledTexture.java
+++ b/src/com/android/gallery3d/ui/TiledTexture.java
@@ -36,8 +36,8 @@ import java.util.ArrayList;
// upload the whole bitmap but we reduce the time of uploading each tile
// so it make the animation more smooth and prevents jank.
public class TiledTexture implements Texture {
- private static final int CONTENT_SIZE = 256;
- private static final int BORDER_SIZE = 0;
+ private static final int CONTENT_SIZE = 254;
+ private static final int BORDER_SIZE = 1;
private static final int TILE_SIZE = CONTENT_SIZE + 2 * BORDER_SIZE;
private static final int INIT_CAPACITY = 8;
@@ -50,6 +50,7 @@ public class TiledTexture implements Texture {
private static Bitmap sUploadBitmap;
private static Canvas sCanvas;
+ private static Paint sBitmapPaint;
private static Paint sPaint;
private int mUploadIndex = 0;
@@ -128,9 +129,9 @@ public class TiledTexture implements Texture {
protected Bitmap onGetBitmap() {
int x = BORDER_SIZE - offsetX;
int y = BORDER_SIZE - offsetY;
- int r = bitmap.getWidth() - x;
- int b = bitmap.getHeight() - y ;
- sCanvas.drawBitmap(bitmap, x, y, null);
+ int r = bitmap.getWidth() + x;
+ int b = bitmap.getHeight() + y ;
+ sCanvas.drawBitmap(bitmap, x, y, sBitmapPaint);
bitmap = null;
// draw borders if need
@@ -220,15 +221,18 @@ public class TiledTexture implements Texture {
public static void freeResources() {
sUploadBitmap = null;
sCanvas = null;
+ sBitmapPaint = null;
sPaint = null;
}
public static void prepareResources() {
sUploadBitmap = Bitmap.createBitmap(TILE_SIZE, TILE_SIZE, Config.ARGB_8888);
sCanvas = new Canvas(sUploadBitmap);
- sPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
+ sBitmapPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
+ sBitmapPaint.setXfermode(new PorterDuffXfermode(Mode.SRC));
+ sPaint = new Paint();
+ sPaint.setXfermode(new PorterDuffXfermode(Mode.SRC));
sPaint.setColor(Color.TRANSPARENT);
- sPaint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
}
// We want to draw the "source" on the "target".