Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02725bd6 authored by Jernej Virag's avatar Jernej Virag Committed by Android (Google) Code Review
Browse files

Merge "Fix loaded size of BigPicture bitmap" into tm-dev

parents f5debd0b 6a1ca2ff
Loading
Loading
Loading
Loading
+22 −16
Original line number Diff line number Diff line
@@ -20,16 +20,16 @@ import android.annotation.AttrRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StyleRes;
import android.app.ActivityManager;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ImageView;
import android.widget.RemoteViews;

import java.io.IOException;
import com.android.internal.R;

/**
 * An ImageView used by BigPicture Notifications to correctly resolve the Uri in an Icon using the
@@ -41,22 +41,32 @@ public class BigPictureNotificationImageView extends ImageView {

    private static final String TAG = BigPictureNotificationImageView.class.getSimpleName();

    private final int mMaximumDrawableWidth;
    private final int mMaximumDrawableHeight;

    public BigPictureNotificationImageView(@NonNull Context context) {
        super(context);
        this(context, null, 0, 0);
    }

    public BigPictureNotificationImageView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        this(context, attrs, 0, 0);
    }

    public BigPictureNotificationImageView(@NonNull Context context, @Nullable AttributeSet attrs,
            @AttrRes int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this(context, attrs, defStyleAttr, 0);
    }

    public BigPictureNotificationImageView(@NonNull Context context, @Nullable AttributeSet attrs,
            @AttrRes int defStyleAttr, @StyleRes int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        boolean isLowRam = ActivityManager.isLowRamDeviceStatic();
        mMaximumDrawableWidth = context.getResources().getDimensionPixelSize(
                isLowRam ? R.dimen.notification_big_picture_max_width_low_ram
                        : R.dimen.notification_big_picture_max_width);
        mMaximumDrawableHeight = context.getResources().getDimensionPixelSize(
                isLowRam ? R.dimen.notification_big_picture_max_height_low_ram
                        : R.dimen.notification_big_picture_max_height);
    }

    @Override
@@ -85,21 +95,17 @@ public class BigPictureNotificationImageView extends ImageView {

    private Drawable loadImage(Uri uri) {
        if (uri == null) return null;
        try {
            return LocalImageResolver.resolveImage(uri, mContext);
        } catch (IOException ex) {
            Log.d(TAG, "Resolve failed from " + uri, ex);
            return null;
        }
        return LocalImageResolver.resolveImage(uri, mContext, mMaximumDrawableWidth,
                mMaximumDrawableHeight);
    }

    private Drawable loadImage(Icon icon) {
        if (icon == null) return null;
        try {
            return LocalImageResolver.resolveImage(icon, mContext);
        } catch (IOException ex) {
            Log.d(TAG, "Resolve failed from " + icon, ex);
            return null;
        Drawable drawable = LocalImageResolver.resolveImage(icon, mContext, mMaximumDrawableWidth,
                mMaximumDrawableHeight);
        if (drawable == null) {
            return icon.loadDrawable(mContext);
        }
        return drawable;
    }
}