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

Commit fc9ae631 authored by Meng Wang's avatar Meng Wang Committed by Android (Google) Code Review
Browse files

Merge "Lazily load bitmap of SubscriptionInfo"

parents afddc565 0e0a12cc
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
@@ -115,9 +116,9 @@ public class SubscriptionInfo implements Parcelable {
    private int mDataRoaming;

    /**
     * SIM Icon bitmap
     * SIM icon bitmap cache
     */
    private Bitmap mIconBitmap;
    @Nullable private Bitmap mIconBitmap;

    /**
     * Mobile Country Code
@@ -405,6 +406,10 @@ public class SubscriptionInfo implements Parcelable {
     * @return A bitmap icon for this {@code SubscriptionInfo}.
     */
    public Bitmap createIconBitmap(Context context) {
        if (mIconBitmap == null) {
            mIconBitmap = BitmapFactory.decodeResource(context.getResources(),
                    com.android.internal.R.drawable.ic_sim_card_multi_24px_clr);
        }
        int width = mIconBitmap.getWidth();
        int height = mIconBitmap.getHeight();
        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
@@ -774,7 +779,6 @@ public class SubscriptionInfo implements Parcelable {
            String mcc = source.readString();
            String mnc = source.readString();
            String countryIso = source.readString();
            Bitmap iconBitmap = source.readParcelable(Bitmap.class.getClassLoader());
            boolean isEmbedded = source.readBoolean();
            UiccAccessRule[] nativeAccessRules = source.createTypedArray(UiccAccessRule.CREATOR);
            String cardString = source.readString();
@@ -793,10 +797,10 @@ public class SubscriptionInfo implements Parcelable {
            boolean areUiccApplicationsEnabled = source.readBoolean();

            SubscriptionInfo info = new SubscriptionInfo(id, iccId, simSlotIndex, displayName,
                    carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc,
                    countryIso, isEmbedded, nativeAccessRules, cardString, cardId, isOpportunistic,
                    groupUUID, isGroupDisabled, carrierid, profileClass, subType, groupOwner,
                    carrierConfigAccessRules, areUiccApplicationsEnabled);
                    carrierName, nameSource, iconTint, number, dataRoaming, /* icon= */ null,
                    mcc, mnc, countryIso, isEmbedded, nativeAccessRules, cardString, cardId,
                    isOpportunistic, groupUUID, isGroupDisabled, carrierid, profileClass, subType,
                    groupOwner, carrierConfigAccessRules, areUiccApplicationsEnabled);
            info.setAssociatedPlmns(ehplmns, hplmns);
            return info;
        }
@@ -821,7 +825,7 @@ public class SubscriptionInfo implements Parcelable {
        dest.writeString(mMcc);
        dest.writeString(mMnc);
        dest.writeString(mCountryIso);
        dest.writeParcelable(mIconBitmap, flags);
        // Do not write mIconBitmap since it should be lazily loaded on first usage
        dest.writeBoolean(mIsEmbedded);
        dest.writeTypedArray(mNativeAccessRules, flags);
        dest.writeString(mCardString);