Merge "Replace HashMap with ArrayMap for better performance" into main
This commit is contained in:
@@ -20,6 +20,7 @@ import android.annotation.Nullable;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.BadParcelableException;
|
import android.os.BadParcelableException;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
@@ -35,7 +36,6 @@ import com.android.settings.overlay.FeatureFactory;
|
|||||||
import com.android.settings.widget.CardPreference;
|
import com.android.settings.widget.CardPreference;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -65,7 +65,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
|
|||||||
|
|
||||||
public BatteryTipPreferenceController(Context context, String preferenceKey) {
|
public BatteryTipPreferenceController(Context context, String preferenceKey) {
|
||||||
super(context, preferenceKey);
|
super(context, preferenceKey);
|
||||||
mBatteryTipMap = new HashMap<>();
|
mBatteryTipMap = new ArrayMap<>();
|
||||||
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
|
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
|
||||||
mNeedUpdate = true;
|
mNeedUpdate = true;
|
||||||
}
|
}
|
||||||
|
@@ -18,9 +18,9 @@ package com.android.settings.fuelgauge.batterytip.tips;
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.icu.text.ListFormatter;
|
import android.icu.text.ListFormatter;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
|
import android.util.ArrayMap;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
@@ -31,7 +31,6 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
|||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -66,7 +65,7 @@ public class RestrictAppTip extends BatteryTip {
|
|||||||
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
||||||
mRestrictAppList.get(0).packageName) : "";
|
mRestrictAppList.get(0).packageName) : "";
|
||||||
|
|
||||||
Map<String, Object> arguments = new HashMap<>();
|
Map<String, Object> arguments = new ArrayMap<>();
|
||||||
arguments.put("count", num);
|
arguments.put("count", num);
|
||||||
arguments.put("label", appLabel);
|
arguments.put("label", appLabel);
|
||||||
return mState == StateType.HANDLED
|
return mState == StateType.HANDLED
|
||||||
@@ -84,7 +83,7 @@ public class RestrictAppTip extends BatteryTip {
|
|||||||
final int resId = mState == StateType.HANDLED
|
final int resId = mState == StateType.HANDLED
|
||||||
? R.string.battery_tip_restrict_handled_summary
|
? R.string.battery_tip_restrict_handled_summary
|
||||||
: R.string.battery_tip_restrict_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("count", num);
|
||||||
arguments.put("label", appLabel);
|
arguments.put("label", appLabel);
|
||||||
return StringUtil.getIcuPluralsString(context, arguments, resId);
|
return StringUtil.getIcuPluralsString(context, arguments, resId);
|
||||||
|
@@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
|
||||||
@@ -33,7 +34,6 @@ import com.android.settings.fuelgauge.BatteryUtils;
|
|||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -43,14 +43,14 @@ public class BatteryDiffEntry {
|
|||||||
|
|
||||||
static Locale sCurrentLocale = null;
|
static Locale sCurrentLocale = null;
|
||||||
// Caches app label and icon to improve loading performance.
|
// 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.
|
// 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?
|
// Whether a specific item is valid to launch restriction page?
|
||||||
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
@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. */
|
/** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
|
||||||
static final Comparator<BatteryDiffEntry> COMPARATOR =
|
static final Comparator<BatteryDiffEntry> COMPARATOR =
|
||||||
|
@@ -33,6 +33,7 @@ import android.os.UidBatteryConsumer;
|
|||||||
import android.os.UserBatteryConsumer;
|
import android.os.UserBatteryConsumer;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.DebugUtils;
|
import android.util.DebugUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -41,7 +42,6 @@ import com.android.settings.fuelgauge.BatteryUtils;
|
|||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,7 +90,7 @@ public class BatteryEntry {
|
|||||||
BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_CACHED),
|
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;
|
static Locale sCurrentLocale = null;
|
||||||
|
|
||||||
|
@@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -50,7 +51,6 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
|
|||||||
import com.android.settingslib.widget.FooterPreference;
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -75,7 +75,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final Map<String, Preference> mPreferenceCache = new HashMap<>();
|
final Map<String, Preference> mPreferenceCache = new ArrayMap<>();
|
||||||
|
|
||||||
private int mSpinnerPosition;
|
private int mSpinnerPosition;
|
||||||
private String mSlotTimestamp;
|
private String mSlotTimestamp;
|
||||||
|
@@ -34,7 +34,6 @@ import com.android.settings.Utils;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -293,7 +292,7 @@ public class DataProcessManager {
|
|||||||
Log.d(TAG, "there is no work profile");
|
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);
|
usageEventsMap.put(Long.valueOf(currentUserId), usageEventsForCurrentUser);
|
||||||
if (usageEventsForWorkProfile != null) {
|
if (usageEventsForWorkProfile != null) {
|
||||||
Log.d(TAG, "usageEventsForWorkProfile is null");
|
Log.d(TAG, "usageEventsForWorkProfile is null");
|
||||||
|
Reference in New Issue
Block a user