Merge "Replace HashMap with ArrayMap for better performance" into main
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index 1a0ca4e..4b1f645 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -20,6 +20,7 @@
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.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 BatteryTipPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
- mBatteryTipMap = new HashMap<>();
+ mBatteryTipMap = new ArrayMap<>();
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
mNeedUpdate = true;
}
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
index 55ac3fa..cba614b 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
@@ -18,9 +18,9 @@
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.utils.StringUtil;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -66,7 +65,7 @@
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 @@
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);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index a7deaf9..b186c60 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -23,6 +23,7 @@
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.settingslib.utils.StringUtil;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -43,14 +43,14 @@
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 =
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index 506607c..5d87302 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -33,6 +33,7 @@
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.settingslib.Utils;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.Locale;
/**
@@ -90,7 +90,7 @@
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;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index 7fedec7..983524f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -23,6 +23,7 @@
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.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 @@
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;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
index c298afa..99cf354 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
@@ -34,7 +34,6 @@
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -293,7 +292,7 @@
Log.d(TAG, "there is no work profile");
}
- final Map<Long, UsageEvents> usageEventsMap = new HashMap<>();
+ final Map<Long, UsageEvents> usageEventsMap = new ArrayMap<>();
usageEventsMap.put(Long.valueOf(currentUserId), usageEventsForCurrentUser);
if (usageEventsForWorkProfile != null) {
Log.d(TAG, "usageEventsForWorkProfile is null");