Simplify rendererDisabledFlags bundling

Align redererDisableFlags (un)bundling
with the other field by using an explicit
temporary data structure (int array).

PiperOrigin-RevId: 396358143
This commit is contained in:
krocard 2021-09-13 16:10:00 +01:00 committed by Christos Tsilopoulos
parent 4940f21d48
commit cf0ec91934

View File

@ -302,8 +302,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
selectionOverrides = new SparseArray<>(); selectionOverrides = new SparseArray<>();
setSelectionOverridesFromBundle(bundle); setSelectionOverridesFromBundle(bundle);
rendererDisabledFlags = new SparseBooleanArray(); rendererDisabledFlags =
setRendererDisabledFlagsFromBundle(bundle); makeSparseBooleanArrayFromTrueKeys(
bundle.getIntArray(
Parameters.keyForField(Parameters.FIELD_RENDERER_DISABLED_INDEXES)));
} }
@Override @Override
@ -827,15 +829,15 @@ public class DefaultTrackSelector extends MappingTrackSelector {
} }
} }
private void setRendererDisabledFlagsFromBundle(Bundle bundle) { private SparseBooleanArray makeSparseBooleanArrayFromTrueKeys(@Nullable int[] trueKeys) {
int[] rendererIndexes = if (trueKeys == null) {
bundle.getIntArray(Parameters.keyForField(Parameters.FIELD_RENDERER_DISABLED_INDEXES)); return new SparseBooleanArray();
if (rendererIndexes == null) {
return;
} }
for (int rendererIndex : rendererIndexes) { SparseBooleanArray sparseBooleanArray = new SparseBooleanArray(trueKeys.length);
setRendererDisabled(rendererIndex, true); for (int trueKey : trueKeys) {
sparseBooleanArray.append(trueKey, true);
} }
return sparseBooleanArray;
} }
} }
@ -1145,7 +1147,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
keyForField(FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS), allowMultipleAdaptiveSelections); keyForField(FIELD_ALLOW_MULTIPLE_ADAPTIVE_SELECTIONS), allowMultipleAdaptiveSelections);
putSelectionOverridesToBundle(bundle, selectionOverrides); putSelectionOverridesToBundle(bundle, selectionOverrides);
putRendererDisabledFlagsToBundle(bundle, rendererDisabledFlags); // Only true values are put into rendererDisabledFlags.
bundle.putIntArray(
keyForField(FIELD_RENDERER_DISABLED_INDEXES),
getKeysFromSparseBooleanArray(rendererDisabledFlags));
return bundle; return bundle;
} }
@ -1192,13 +1197,12 @@ public class DefaultTrackSelector extends MappingTrackSelector {
} }
} }
private static void putRendererDisabledFlagsToBundle( private static int[] getKeysFromSparseBooleanArray(SparseBooleanArray sparseBooleanArray) {
Bundle bundle, SparseBooleanArray rendererDisabledFlags) { int[] keys = new int[sparseBooleanArray.size()];
int[] rendererIndexes = new int[rendererDisabledFlags.size()]; for (int i = 0; i < sparseBooleanArray.size(); i++) {
for (int i = 0; i < rendererDisabledFlags.size(); i++) { keys[i] = sparseBooleanArray.keyAt(i);
rendererIndexes[i] = rendererDisabledFlags.keyAt(i);
} }
bundle.putIntArray(keyForField(FIELD_RENDERER_DISABLED_INDEXES), rendererIndexes); return keys;
} }
private static boolean areRendererDisabledFlagsEqual( private static boolean areRendererDisabledFlagsEqual(