Removed custom ArrayList implementation that was only used in one location
This commit is contained in:
parent
687693ccb0
commit
44bb7d53a2
|
@ -25,10 +25,11 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||||
import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
|
import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
|
||||||
import de.danoeh.antennapod.core.util.Converter;
|
import de.danoeh.antennapod.core.util.Converter;
|
||||||
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
|
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
|
||||||
import de.danoeh.antennapod.core.util.IntList;
|
|
||||||
import de.danoeh.antennapod.core.util.TimeSpeedConverter;
|
import de.danoeh.antennapod.core.util.TimeSpeedConverter;
|
||||||
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
||||||
import de.danoeh.antennapod.core.util.playback.Playable;
|
import de.danoeh.antennapod.core.util.playback.Playable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
public class PlaybackServiceNotificationBuilder {
|
public class PlaybackServiceNotificationBuilder {
|
||||||
private static final String TAG = "PlaybackSrvNotification";
|
private static final String TAG = "PlaybackSrvNotification";
|
||||||
|
@ -151,7 +152,7 @@ public class PlaybackServiceNotificationBuilder {
|
||||||
|
|
||||||
private void addActions(NotificationCompat.Builder notification, MediaSessionCompat.Token mediaSessionToken,
|
private void addActions(NotificationCompat.Builder notification, MediaSessionCompat.Token mediaSessionToken,
|
||||||
PlayerStatus playerStatus, boolean isCasting) {
|
PlayerStatus playerStatus, boolean isCasting) {
|
||||||
IntList compactActionList = new IntList();
|
ArrayList<Integer> compactActionList = new ArrayList<>();
|
||||||
|
|
||||||
int numActions = 0; // we start and 0 and then increment by 1 for each call to addAction
|
int numActions = 0; // we start and 0 and then increment by 1 for each call to addAction
|
||||||
|
|
||||||
|
@ -218,7 +219,7 @@ public class PlaybackServiceNotificationBuilder {
|
||||||
KeyEvent.KEYCODE_MEDIA_STOP, numActions);
|
KeyEvent.KEYCODE_MEDIA_STOP, numActions);
|
||||||
notification.setStyle(new androidx.media.app.NotificationCompat.MediaStyle()
|
notification.setStyle(new androidx.media.app.NotificationCompat.MediaStyle()
|
||||||
.setMediaSession(mediaSessionToken)
|
.setMediaSession(mediaSessionToken)
|
||||||
.setShowActionsInCompactView(compactActionList.toArray())
|
.setShowActionsInCompactView(ArrayUtils.toPrimitive(compactActionList.toArray(new Integer[0])))
|
||||||
.setShowCancelButton(true)
|
.setShowCancelButton(true)
|
||||||
.setCancelButtonIntent(stopButtonPendingIntent));
|
.setCancelButtonIntent(stopButtonPendingIntent));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,240 +0,0 @@
|
||||||
package de.danoeh.antennapod.core.util;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fast and memory efficient int list
|
|
||||||
*/
|
|
||||||
public final class IntList {
|
|
||||||
|
|
||||||
private int[] values;
|
|
||||||
private int size;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs an empty instance with a default initial capacity.
|
|
||||||
*/
|
|
||||||
public IntList() {
|
|
||||||
this(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs an empty instance.
|
|
||||||
*
|
|
||||||
* @param initialCapacity {@code >= 0;} initial capacity of the list
|
|
||||||
*/
|
|
||||||
private IntList(int initialCapacity) {
|
|
||||||
if(initialCapacity < 0) {
|
|
||||||
throw new IllegalArgumentException("initial capacity must be 0 or higher");
|
|
||||||
}
|
|
||||||
values = new int[initialCapacity];
|
|
||||||
size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int hashCode = 1;
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
int value = values[i];
|
|
||||||
hashCode = 31 * hashCode + value;
|
|
||||||
}
|
|
||||||
return hashCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object other) {
|
|
||||||
if (other == this) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (! (other instanceof IntList)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
IntList otherList = (IntList) other;
|
|
||||||
if (size != otherList.size) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
if (values[i] != otherList.values[i]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
StringBuilder sb = new StringBuilder(size * 5 + 10);
|
|
||||||
sb.append("IntList{");
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
if (i != 0) {
|
|
||||||
sb.append(", ");
|
|
||||||
}
|
|
||||||
sb.append(values[i]);
|
|
||||||
}
|
|
||||||
sb.append("}");
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the number of elements in this list.
|
|
||||||
*/
|
|
||||||
public int size() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the indicated value.
|
|
||||||
*
|
|
||||||
* @param n {@code >= 0, < size();} which element
|
|
||||||
* @return the indicated element's value
|
|
||||||
*/
|
|
||||||
public int get(int n) {
|
|
||||||
if (n >= size) {
|
|
||||||
throw new IndexOutOfBoundsException("n >= size()");
|
|
||||||
} else if(n < 0) {
|
|
||||||
throw new IndexOutOfBoundsException("n < 0");
|
|
||||||
}
|
|
||||||
return values[n];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value at the given index.
|
|
||||||
*
|
|
||||||
* @param index the index at which to put the specified object.
|
|
||||||
* @param value the object to add.
|
|
||||||
* @return the previous element at the index.
|
|
||||||
*/
|
|
||||||
public int set(int index, int value) {
|
|
||||||
if (index >= size) {
|
|
||||||
throw new IndexOutOfBoundsException("n >= size()");
|
|
||||||
} else if(index < 0) {
|
|
||||||
throw new IndexOutOfBoundsException("n < 0");
|
|
||||||
}
|
|
||||||
int result = values[index];
|
|
||||||
values[index] = value;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds an element to the end of the list. This will increase the
|
|
||||||
* list's capacity if necessary.
|
|
||||||
*
|
|
||||||
* @param value the value to add
|
|
||||||
*/
|
|
||||||
public void add(int value) {
|
|
||||||
growIfNeeded();
|
|
||||||
values[size++] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inserts element into specified index, moving elements at and above
|
|
||||||
* that index up one. May not be used to insert at an index beyond the
|
|
||||||
* current size (that is, insertion as a last element is legal but
|
|
||||||
* no further).
|
|
||||||
*
|
|
||||||
* @param n {@code >= 0, <=size();} index of where to insert
|
|
||||||
* @param value value to insert
|
|
||||||
*/
|
|
||||||
public void insert(int n, int value) {
|
|
||||||
if (n > size) {
|
|
||||||
throw new IndexOutOfBoundsException("n > size()");
|
|
||||||
} else if(n < 0) {
|
|
||||||
throw new IndexOutOfBoundsException("n < 0");
|
|
||||||
}
|
|
||||||
|
|
||||||
growIfNeeded();
|
|
||||||
|
|
||||||
System.arraycopy (values, n, values, n+1, size - n);
|
|
||||||
values[n] = value;
|
|
||||||
size++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes value from this list.
|
|
||||||
*
|
|
||||||
* @param value value to remove
|
|
||||||
* return {@code true} if the value was removed, {@code false} otherwise
|
|
||||||
*/
|
|
||||||
public boolean remove(int value) {
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
if (values[i] == value) {
|
|
||||||
size--;
|
|
||||||
System.arraycopy(values, i+1, values, i, size-i);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes an element at a given index, shifting elements at greater
|
|
||||||
* indicies down one.
|
|
||||||
*
|
|
||||||
* @param index index of element to remove
|
|
||||||
*/
|
|
||||||
public void removeIndex(int index) {
|
|
||||||
if (index >= size) {
|
|
||||||
throw new IndexOutOfBoundsException("n >= size()");
|
|
||||||
} else if(index < 0) {
|
|
||||||
throw new IndexOutOfBoundsException("n < 0");
|
|
||||||
}
|
|
||||||
size--;
|
|
||||||
System.arraycopy (values, index + 1, values, index, size - index);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Increases size of array if needed
|
|
||||||
*/
|
|
||||||
private void growIfNeeded() {
|
|
||||||
if (size == values.length) {
|
|
||||||
// Resize.
|
|
||||||
int[] newArray = new int[size * 3 / 2 + 10];
|
|
||||||
System.arraycopy(values, 0, newArray, 0, size);
|
|
||||||
values = newArray;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the index of the given value, or -1 if the value does not
|
|
||||||
* appear in the list.
|
|
||||||
*
|
|
||||||
* @param value value to find
|
|
||||||
* @return index of value or -1
|
|
||||||
*/
|
|
||||||
private int indexOf(int value) {
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
if (values[i] == value) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes all values from this list.
|
|
||||||
*/
|
|
||||||
public void clear() {
|
|
||||||
values = new int[4];
|
|
||||||
size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the given value is contained in the list
|
|
||||||
*
|
|
||||||
* @param value value to look for
|
|
||||||
* @return {@code true} if this list contains {@code value}, {@code false} otherwise
|
|
||||||
*/
|
|
||||||
public boolean contains(int value) {
|
|
||||||
return indexOf(value) >= 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an array with a copy of this list's values
|
|
||||||
*
|
|
||||||
* @return array with a copy of this list's values
|
|
||||||
*/
|
|
||||||
public int[] toArray() {
|
|
||||||
return Arrays.copyOf(values, size);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue