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

Commit ba8227eb authored by Meng Wang's avatar Meng Wang
Browse files

Lazily load bitmap of SubscriptionInfo

Bug: 194251398
Test: manual - see the bug
Change-Id: I0af239e1befeff8d4f00a27bc9679eb0b4849500
Merged-In: I0af239e1befeff8d4f00a27bc9679eb0b4849500
(cherry picked from commit 0e0a12cc)
parent 4eaa49ee
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -23,6 +23,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;
@@ -113,9 +114,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
@@ -403,6 +404,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();
@@ -765,7 +770,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();
@@ -784,10 +788,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;
        }
@@ -812,7 +816,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);