mirror of
https://github.com/androidx/media.git
synced 2025-05-03 21:57:46 +08:00
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:
parent
4940f21d48
commit
cf0ec91934
@ -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(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user