summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/category/CategoryAdapter.java3
-rw-r--r--src/com/android/gallery3d/filtershow/ui/FilterIconButton.java193
-rw-r--r--src/com/android/gallery3d/filtershow/ui/IconButton.java177
3 files changed, 0 insertions, 373 deletions
diff --git a/src/com/android/gallery3d/filtershow/category/CategoryAdapter.java b/src/com/android/gallery3d/filtershow/category/CategoryAdapter.java
index 027fa5d..384f57a 100644
--- a/src/com/android/gallery3d/filtershow/category/CategoryAdapter.java
+++ b/src/com/android/gallery3d/filtershow/category/CategoryAdapter.java
@@ -17,17 +17,14 @@
package com.android.gallery3d.filtershow.category;
import android.content.Context;
-import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
-import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.FilterTinyPlanetRepresentation;
import com.android.gallery3d.filtershow.pipeline.ImagePreset;
-import com.android.gallery3d.filtershow.ui.FilterIconButton;
public class CategoryAdapter extends ArrayAdapter<Action> {
diff --git a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java b/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
deleted file mode 100644
index af965a3..0000000
--- a/src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.gallery3d.filtershow.ui;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import com.android.gallery3d.R;
-import com.android.gallery3d.filtershow.FilterShowActivity;
-import com.android.gallery3d.filtershow.pipeline.RenderingRequest;
-import com.android.gallery3d.filtershow.pipeline.RenderingRequestCaller;
-import com.android.gallery3d.filtershow.category.Action;
-import com.android.gallery3d.filtershow.category.CategoryAdapter;
-import com.android.gallery3d.filtershow.filters.FilterRepresentation;
-import com.android.gallery3d.filtershow.imageshow.GeometryListener;
-import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
-import com.android.gallery3d.filtershow.imageshow.MasterImage;
-import com.android.gallery3d.filtershow.pipeline.ImagePreset;
-import com.android.gallery3d.filtershow.tools.IconFactory;
-
-// TODO: merge back IconButton and FilterIconButton?
-public class FilterIconButton extends IconButton implements View.OnClickListener,
- RenderingRequestCaller, GeometryListener {
- private static final String LOGTAG = "FilterIconButton";
- private Bitmap mOverlayBitmap = null;
- private boolean mOverlayOnly = false;
- private FilterRepresentation mFilterRepresentation = null;
- private Bitmap mIconBitmap = null;
- private Action mAction;
- private Paint mSelectPaint;
- private int mSelectStroke;
- private CategoryAdapter mAdapter;
- public FilterIconButton(Context context) {
- super(context);
- }
-
- public FilterIconButton(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public FilterIconButton(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- public void setup(String text, LinearLayout parent, CategoryAdapter adapter) {
- mAdapter = adapter;
- setText(text);
- setContentDescription(text);
- super.setOnClickListener(this);
- Resources res = getContext().getResources();
- MasterImage.getImage().addGeometryListener(this);
- mSelectStroke = res.getDimensionPixelSize(R.dimen.thumbnail_margin);
- mSelectPaint = new Paint();
- mSelectPaint.setStyle(Paint.Style.FILL);
- mSelectPaint.setColor(res.getColor(R.color.filtershow_category_selection));
- invalidate();
- }
-
- @Override
- public void onClick(View v) {
- FilterShowActivity activity = (FilterShowActivity) getContext();
- activity.showRepresentation(mFilterRepresentation);
- mAdapter.setSelected(v);
- }
-
- public FilterRepresentation getFilterRepresentation() {
- return mFilterRepresentation;
- }
-
- public void setAction(Action action) {
- mAction = action;
- if (action == null) {
- return;
- }
- if (mAction.getPortraitImage() != null) {
- mIconBitmap = mAction.getPortraitImage();
- setIcon(mIconBitmap);
- }
- setFilterRepresentation(mAction.getRepresentation());
- }
-
- private void setFilterRepresentation(FilterRepresentation filterRepresentation) {
- mFilterRepresentation = filterRepresentation;
- if (mFilterRepresentation != null && mFilterRepresentation.getOverlayId() != 0) {
- if (mAction.getOverlayBitmap() == null) {
- mOverlayBitmap = BitmapFactory.decodeResource(getResources(),
- mFilterRepresentation.getOverlayId());
- mAction.setOverlayBitmap(mOverlayBitmap);
- } else {
- mOverlayBitmap = mAction.getOverlayBitmap();
- }
- }
- mOverlayOnly = mFilterRepresentation.getOverlayOnly();
- if (mOverlayOnly) {
- assert(mOverlayBitmap != null);
- setIcon(mOverlayBitmap);
- }
- invalidate();
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- if (mIconBitmap == null && !mOverlayOnly) {
- postNewIconRenderRequest();
- } else {
- super.onDraw(canvas);
- }
- if (mAdapter.isSelected(this)) {
- Drawable iconDrawable = getCompoundDrawables()[1];
- if (iconDrawable != null) {
- canvas.save();
- int padding = getCompoundDrawablePadding();
- canvas.translate(getScrollX() + padding + getPaddingLeft() - mSelectStroke - 1,
- getScrollY() + padding + getPaddingTop() - mSelectStroke - 1);
- Rect r = iconDrawable.getBounds();
- SelectionRenderer.drawSelection(canvas, r.left, r.top,
- r.right + 2 * mSelectStroke + 2, r.bottom + 2 * mSelectStroke + 2,
- mSelectStroke, mSelectPaint);
- canvas.restore();
- }
- }
- }
-
- @Override
- public void available(RenderingRequest request) {
- Bitmap bmap = request.getBitmap();
- if (bmap == null) {
- return;
- }
- if (mOverlayOnly) {
- setIcon(mOverlayBitmap);
- } else {
- mIconBitmap = bmap;
- if (mOverlayBitmap != null) {
- // Draw overlay bitmap over icon
- IconFactory.drawIcon(mIconBitmap, mOverlayBitmap, false);
- }
- setIcon(mIconBitmap);
- if (mAction != null) {
- mAction.setPortraitImage(mIconBitmap);
- }
- }
- }
-
- @Override
- public void geometryChanged() {
- if (mOverlayOnly) {
- return;
- }
- mIconBitmap = null;
- invalidate();
- }
-
- private void postNewIconRenderRequest() {
- Bitmap dst = MasterImage.getImage().getThumbnailBitmap();
- if (dst != null && mAction != null) {
- ImagePreset mPreset = new ImagePreset();
- mPreset.addFilter(mFilterRepresentation);
-
- GeometryMetadata geometry = mPreset.getGeometry();
- RectF bound = new RectF(0, 0, dst.getWidth(), dst.getHeight());
- geometry.setCropBounds(bound);
- geometry.setPhotoBounds(bound);
- mPreset.setGeometry(geometry);
- RenderingRequest.post(dst.copy(Bitmap.Config.ARGB_8888, true),
- mPreset, RenderingRequest.ICON_RENDERING, this);
- }
- }
-}
diff --git a/src/com/android/gallery3d/filtershow/ui/IconButton.java b/src/com/android/gallery3d/filtershow/ui/IconButton.java
deleted file mode 100644
index e7087bd..0000000
--- a/src/com/android/gallery3d/filtershow/ui/IconButton.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.gallery3d.filtershow.ui;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
-import android.util.AttributeSet;
-import android.widget.Button;
-
-import com.android.gallery3d.filtershow.tools.IconFactory;
-import com.android.photos.data.GalleryBitmapPool;
-
-/**
- * Class of buttons with both an image icon and text.
- */
-public class IconButton extends Button {
-
- private Bitmap mImageMirror = null;
- private Bitmap mIcon = null;
-
- private boolean stale_icon = true;
-
- public IconButton(Context context) {
- this(context, null);
- }
-
- public IconButton(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public IconButton(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- BitmapDrawable ic = (BitmapDrawable) getCompoundDrawables()[1];
-
- if (ic != null) {
- mImageMirror = ic.getBitmap();
- }
- }
-
- /**
- * Set the image that the button icon will use. The image bitmap will be scaled
- * and cropped into the largest bitmap with dimensions given by getGoodIconSideSize()
- * that will fit cleanly within the IconButton's layout.
- *
- * @param image image that icon will be set to before next draw.
- */
- public void setIcon(Bitmap image) {
- mImageMirror = image;
- stale_icon = true;
- invalidate();
- }
-
- /**
- * Finds a side lengths for the icon that fits within the button.
- * Only call after layout. The default implementation returns the best
- * side lengths for a square icon.
- * <p>
- * Override this to make non-square icons or icons with different padding
- * constraints.
- *
- * @return an array of ints representing the icon dimensions [ width, height ]
- */
- protected int[] getGoodIconSideSize() {
- Paint p = getPaint();
- Rect bounds = new Rect();
- // find text bounds
- String s = getText().toString();
- p.getTextBounds(s, 0, s.length(), bounds);
-
- int inner_padding = 2 * getCompoundDrawablePadding();
-
- // find total vertical space available for the icon
- int vert = getHeight() - getPaddingTop() - getPaddingBottom() - bounds.height()
- - inner_padding;
-
- // find total horizontal space available for the icon
- int horiz = getWidth() - getPaddingLeft() - getPaddingRight() - inner_padding;
-
- int defaultSize = Math.min(vert, horiz);
- return new int[] { defaultSize, defaultSize };
- }
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
- if (w != oldw || h != oldh) {
- stale_icon = true;
- }
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- if (stale_icon && mImageMirror != null && mImageMirror.getHeight() > 0
- && mImageMirror.getWidth() > 0) {
- stale_icon = !makeAndSetIcon(mImageMirror);
- }
- super.onDraw(canvas);
- }
-
- // Internal methods
-
- /**
- * Creates and sets button icon. Only call after layout.
- *
- * @param image bitmap to use as icon
- */
- private boolean makeAndSetIcon(Bitmap image) {
- int[] sizes = getGoodIconSideSize();
- if (sizes != null && sizes.length >= 2 && sizes[0] > 0 && sizes[1] > 0) {
- return setImageIcon(makeImageIcon(image, sizes[0], sizes[1]));
- }
- return false;
- }
-
- /**
- * Sets icon.
- *
- * @param image bitmap to set the icon to.
- */
- private boolean setImageIcon(Bitmap image) {
- if (image == null) {
- return false;
- }
- if(mIcon != null && mIcon.getConfig() == Bitmap.Config.ARGB_8888) {
- GalleryBitmapPool.getInstance().put(mIcon);
- mIcon = null;
- }
- mIcon = image;
- this.setCompoundDrawablesWithIntrinsicBounds(null,
- new BitmapDrawable(getResources(), mIcon), null, null);
- return true;
- }
-
- /**
- * Generate an icon bitmap from a given bitmap.
- *
- * @param image bitmap to use as button icon
- * @param width icon width
- * @param height icon height
- * @return the scaled/cropped icon bitmap
- */
- private Bitmap makeImageIcon(Bitmap image, int width, int height) {
- if (image == null || image.getHeight() < 1 || image.getWidth() < 1 ||
- width < 1 || height < 1) {
- throw new IllegalArgumentException("input is null, or has invalid dimensions");
- }
- Bitmap icon = null;
- icon = GalleryBitmapPool.getInstance().get(width, height);
- if (icon == null) {
- icon = IconFactory.createIcon(image, width, height, false);
- } else {
- assert(icon.getWidth() == width && icon.getHeight() == height);
- icon.eraseColor(Color.TRANSPARENT);
- IconFactory.drawIcon(icon, image, false);
- }
- return icon;
- }
-}