summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/datamodel/media/CompositeImageRequest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/datamodel/media/CompositeImageRequest.java')
-rw-r--r--src/com/android/messaging/datamodel/media/CompositeImageRequest.java109
1 files changed, 0 insertions, 109 deletions
diff --git a/src/com/android/messaging/datamodel/media/CompositeImageRequest.java b/src/com/android/messaging/datamodel/media/CompositeImageRequest.java
deleted file mode 100644
index 66f1bff..0000000
--- a/src/com/android/messaging/datamodel/media/CompositeImageRequest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2015 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.messaging.datamodel.media;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.RectF;
-import android.media.ExifInterface;
-
-import com.android.messaging.util.Assert;
-import com.android.messaging.util.ImageUtils;
-
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * Requests a composite image resource. The composite image resource is constructed by first
- * sequentially requesting a number of sub image resources specified by
- * {@link CompositeImageRequestDescriptor#getChildRequestDescriptors()}. After this, the
- * individual sub images are composed into the final image onto their respective target rects
- * returned by {@link CompositeImageRequestDescriptor#getChildRequestTargetRects()}.
- */
-public class CompositeImageRequest<D extends CompositeImageRequestDescriptor>
- extends ImageRequest<D> {
- private final Bitmap mBitmap;
- private final Canvas mCanvas;
- private final Paint mPaint;
-
- public CompositeImageRequest(final Context context, final D descriptor) {
- super(context, descriptor);
- mBitmap = getBitmapPool().createOrReuseBitmap(
- mDescriptor.desiredWidth, mDescriptor.desiredHeight);
- mCanvas = new Canvas(mBitmap);
- mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- }
-
- @Override
- protected ImageResource loadMediaInternal(List<MediaRequest<ImageResource>> chainedTask) {
- final List<? extends ImageRequestDescriptor> descriptors =
- mDescriptor.getChildRequestDescriptors();
- final List<RectF> targetRects = mDescriptor.getChildRequestTargetRects();
- Assert.equals(descriptors.size(), targetRects.size());
- Assert.isTrue(descriptors.size() > 1);
-
- for (int i = 0; i < descriptors.size(); i++) {
- final MediaRequest<ImageResource> request =
- descriptors.get(i).buildSyncMediaRequest(mContext);
- // Synchronously request the child image.
- final ImageResource resource =
- MediaResourceManager.get().requestMediaResourceSync(request);
- if (resource != null) {
- try {
- final RectF avatarDestOnGroup = targetRects.get(i);
-
- // Draw the bitmap into a smaller size with a circle mask.
- final Bitmap resourceBitmap = resource.getBitmap();
- final RectF resourceRect = new RectF(
- 0, 0, resourceBitmap.getWidth(), resourceBitmap.getHeight());
- final Bitmap smallCircleBitmap = getBitmapPool().createOrReuseBitmap(
- Math.round(avatarDestOnGroup.width()),
- Math.round(avatarDestOnGroup.height()));
- final RectF smallCircleRect = new RectF(
- 0, 0, smallCircleBitmap.getWidth(), smallCircleBitmap.getHeight());
- final Canvas smallCircleCanvas = new Canvas(smallCircleBitmap);
- ImageUtils.drawBitmapWithCircleOnCanvas(resource.getBitmap(), smallCircleCanvas,
- resourceRect, smallCircleRect, null /* bitmapPaint */,
- false /* fillBackground */,
- ImageUtils.DEFAULT_CIRCLE_BACKGROUND_COLOR /* circleBackgroundColor */,
- ImageUtils.DEFAULT_CIRCLE_STROKE_COLOR /* circleStrokeColor */);
- final Matrix matrix = new Matrix();
- matrix.setRectToRect(smallCircleRect, avatarDestOnGroup,
- Matrix.ScaleToFit.FILL);
- mCanvas.drawBitmap(smallCircleBitmap, matrix, mPaint);
- } finally {
- resource.release();
- }
- }
- }
-
- return new DecodedImageResource(getKey(), mBitmap, ExifInterface.ORIENTATION_NORMAL);
- }
-
- @Override
- public int getCacheId() {
- return BugleMediaCacheManager.AVATAR_IMAGE_CACHE;
- }
-
- @Override
- protected InputStream getInputStreamForResource() throws FileNotFoundException {
- throw new IllegalStateException("Composite image request doesn't support input stream!");
- }
-}