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

Commit 3e776dee authored by John Reck's avatar John Reck
Browse files

Compatibility hack

Bug: 20940526

Rather than throwing an exception on accessing a recycled()
bitmap let certain operations succeed and just return dummy
values. Apps appear to be relying on this.

Change-Id: I74df2efdc29d93facd8553ed31cda3addf0b28eb
parent a0698b61
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -330,6 +330,7 @@ public final class Bitmap implements Parcelable {
     * @return The current generation ID for this bitmap.
     * @return The current generation ID for this bitmap.
     */
     */
    public int getGenerationId() {
    public int getGenerationId() {
        if (mRecycled) return 0;
        return nativeGenerationId(mFinalizer.mNativeBitmap);
        return nativeGenerationId(mFinalizer.mNativeBitmap);
    }
    }


@@ -1040,6 +1041,7 @@ public final class Bitmap implements Parcelable {
     * @see BitmapFactory.Options#inPremultiplied
     * @see BitmapFactory.Options#inPremultiplied
     */
     */
    public final boolean isPremultiplied() {
    public final boolean isPremultiplied() {
        if (mRecycled) return false;
        return nativeIsPremultiplied(mFinalizer.mNativeBitmap);
        return nativeIsPremultiplied(mFinalizer.mNativeBitmap);
    }
    }


@@ -1064,6 +1066,7 @@ public final class Bitmap implements Parcelable {
     * @see BitmapFactory.Options#inPremultiplied
     * @see BitmapFactory.Options#inPremultiplied
     */
     */
    public final void setPremultiplied(boolean premultiplied) {
    public final void setPremultiplied(boolean premultiplied) {
        checkRecycled("setPremultiplied called on a recycled bitmap");
        mRequestPremultiplied = premultiplied;
        mRequestPremultiplied = premultiplied;
        nativeSetPremultiplied(mFinalizer.mNativeBitmap, premultiplied);
        nativeSetPremultiplied(mFinalizer.mNativeBitmap, premultiplied);
    }
    }
@@ -1200,6 +1203,7 @@ public final class Bitmap implements Parcelable {
     * that config, otherwise return null.
     * that config, otherwise return null.
     */
     */
    public final Config getConfig() {
    public final Config getConfig() {
        if (mRecycled) return Config.ARGB_8888;
        return Config.nativeToConfig(nativeConfig(mFinalizer.mNativeBitmap));
        return Config.nativeToConfig(nativeConfig(mFinalizer.mNativeBitmap));
    }
    }


@@ -1212,6 +1216,7 @@ public final class Bitmap implements Parcelable {
     * it will return true by default.
     * it will return true by default.
     */
     */
    public final boolean hasAlpha() {
    public final boolean hasAlpha() {
        if (mRecycled) return false;
        return nativeHasAlpha(mFinalizer.mNativeBitmap);
        return nativeHasAlpha(mFinalizer.mNativeBitmap);
    }
    }


@@ -1226,6 +1231,7 @@ public final class Bitmap implements Parcelable {
     * non-opaque per-pixel alpha values.
     * non-opaque per-pixel alpha values.
     */
     */
    public void setHasAlpha(boolean hasAlpha) {
    public void setHasAlpha(boolean hasAlpha) {
        checkRecycled("setHasAlpha called on a recycled bitmap");
        nativeSetHasAlpha(mFinalizer.mNativeBitmap, hasAlpha, mRequestPremultiplied);
        nativeSetHasAlpha(mFinalizer.mNativeBitmap, hasAlpha, mRequestPremultiplied);
    }
    }


@@ -1247,6 +1253,7 @@ public final class Bitmap implements Parcelable {
     * @see #setHasMipMap(boolean)
     * @see #setHasMipMap(boolean)
     */
     */
    public final boolean hasMipMap() {
    public final boolean hasMipMap() {
        if (mRecycled) return false;
        return nativeHasMipMap(mFinalizer.mNativeBitmap);
        return nativeHasMipMap(mFinalizer.mNativeBitmap);
    }
    }


@@ -1271,6 +1278,7 @@ public final class Bitmap implements Parcelable {
     * @see #hasMipMap()
     * @see #hasMipMap()
     */
     */
    public final void setHasMipMap(boolean hasMipMap) {
    public final void setHasMipMap(boolean hasMipMap) {
        checkRecycled("setHasMipMap called on a recycled bitmap");
        nativeSetHasMipMap(mFinalizer.mNativeBitmap, hasMipMap);
        nativeSetHasMipMap(mFinalizer.mNativeBitmap, hasMipMap);
    }
    }