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

Commit b0f9489a authored by Jun Lan's avatar Jun Lan
Browse files

Replace HashMap with ArrayMap for better performance

Reason: https://screenshot.googleplex.com/BdHiua8gU8aGUmR

Test: manual
Bug: 308913393
Fix: 308913393
Change-Id: Iea085006ffe6ca48fe547319b9f0f4d20aa78bda
parent 4e806989
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.annotation.Nullable;
import android.content.Context;
import android.os.BadParcelableException;
import android.os.Bundle;
import android.util.ArrayMap;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
@@ -35,7 +36,6 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.CardPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -65,7 +65,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController {

    public BatteryTipPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mBatteryTipMap = new HashMap<>();
        mBatteryTipMap = new ArrayMap<>();
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
        mNeedUpdate = true;
    }
+3 −4
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@ package com.android.settings.fuelgauge.batterytip.tips;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.icu.text.ListFormatter;
import android.os.Parcel;
import android.util.ArrayMap;

import androidx.annotation.VisibleForTesting;

@@ -31,7 +31,6 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.StringUtil;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@@ -66,7 +65,7 @@ public class RestrictAppTip extends BatteryTip {
        final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
                mRestrictAppList.get(0).packageName) : "";

        Map<String, Object> arguments = new HashMap<>();
        Map<String, Object> arguments = new ArrayMap<>();
        arguments.put("count", num);
        arguments.put("label", appLabel);
        return mState == StateType.HANDLED
@@ -84,7 +83,7 @@ public class RestrictAppTip extends BatteryTip {
        final int resId = mState == StateType.HANDLED
                ? R.string.battery_tip_restrict_handled_summary
                : R.string.battery_tip_restrict_summary;
        Map<String, Object> arguments = new HashMap<>();
        Map<String, Object> arguments = new ArrayMap<>();
        arguments.put("count", num);
        arguments.put("label", appLabel);
        return StringUtil.getIcuPluralsString(context, arguments, resId);
+4 −4
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Pair;

@@ -33,7 +34,6 @@ import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settingslib.utils.StringUtil;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

@@ -43,14 +43,14 @@ public class BatteryDiffEntry {

    static Locale sCurrentLocale = null;
    // Caches app label and icon to improve loading performance.
    static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>();
    static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new ArrayMap<>();

    // Caches package name and uid to improve loading performance.
    static final Map<String, Integer> sPackageNameAndUidCache = new HashMap<>();
    static final Map<String, Integer> sPackageNameAndUidCache = new ArrayMap<>();

    // Whether a specific item is valid to launch restriction page?
    @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
    static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
    static final Map<String, Boolean> sValidForRestriction = new ArrayMap<>();

    /** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
    static final Comparator<BatteryDiffEntry> COMPARATOR =
+2 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.UidBatteryConsumer;
import android.os.UserBatteryConsumer;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.ArrayMap;
import android.util.DebugUtils;
import android.util.Log;

@@ -41,7 +42,6 @@ import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settingslib.Utils;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Locale;

/**
@@ -90,7 +90,7 @@ public class BatteryEntry {
                    BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_CACHED),
    };

    static final HashMap<String, UidToDetail> sUidCache = new HashMap<>();
    static final ArrayMap<String, UidToDetail> sUidCache = new ArrayMap<>();

    static Locale sCurrentLocale = null;

+2 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;
import android.view.View;
@@ -50,7 +51,6 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.widget.FooterPreference;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -75,7 +75,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
    private final Handler mHandler = new Handler(Looper.getMainLooper());

    @VisibleForTesting
    final Map<String, Preference> mPreferenceCache = new HashMap<>();
    final Map<String, Preference> mPreferenceCache = new ArrayMap<>();

    private int mSpinnerPosition;
    private String mSlotTimestamp;
Loading