diff options
Diffstat (limited to 'android/util')
-rw-r--r-- | android/util/LruCache.java | 25 | ||||
-rw-r--r-- | android/util/RecurrenceRule.java | 20 |
2 files changed, 19 insertions, 26 deletions
diff --git a/android/util/LruCache.java b/android/util/LruCache.java index 52086065..40154880 100644 --- a/android/util/LruCache.java +++ b/android/util/LruCache.java @@ -20,10 +20,6 @@ import java.util.LinkedHashMap; import java.util.Map; /** - * BEGIN LAYOUTLIB CHANGE - * This is a custom version that doesn't use the non standard LinkedHashMap#eldest. - * END LAYOUTLIB CHANGE - * * A cache that holds strong references to a limited number of values. Each time * a value is accessed, it is moved to the head of a queue. When a value is * added to a full cache, the value at the end of that queue is evicted and may @@ -91,9 +87,8 @@ public class LruCache<K, V> { /** * Sets the size of the cache. - * @param maxSize The new maximum size. * - * @hide + * @param maxSize The new maximum size. */ public void resize(int maxSize) { if (maxSize <= 0) { @@ -190,10 +185,13 @@ public class LruCache<K, V> { } /** + * Remove the eldest entries until the total of remaining entries is at or + * below the requested size. + * * @param maxSize the maximum size of the cache before returning. May be -1 - * to evict even 0-sized elements. + * to evict even 0-sized elements. */ - private void trimToSize(int maxSize) { + public void trimToSize(int maxSize) { while (true) { K key; V value; @@ -207,16 +205,7 @@ public class LruCache<K, V> { break; } - // BEGIN LAYOUTLIB CHANGE - // get the last item in the linked list. - // This is not efficient, the goal here is to minimize the changes - // compared to the platform version. - Map.Entry<K, V> toEvict = null; - for (Map.Entry<K, V> entry : map.entrySet()) { - toEvict = entry; - } - // END LAYOUTLIB CHANGE - + Map.Entry<K, V> toEvict = map.eldest(); if (toEvict == null) { break; } diff --git a/android/util/RecurrenceRule.java b/android/util/RecurrenceRule.java index 9f115eba..9c898766 100644 --- a/android/util/RecurrenceRule.java +++ b/android/util/RecurrenceRule.java @@ -149,6 +149,10 @@ public class RecurrenceRule implements Parcelable { } }; + public boolean isRecurring() { + return period != null; + } + @Deprecated public boolean isMonthly() { return start != null @@ -158,7 +162,7 @@ public class RecurrenceRule implements Parcelable { && period.getDays() == 0; } - public Iterator<Pair<ZonedDateTime, ZonedDateTime>> cycleIterator() { + public Iterator<Range<ZonedDateTime>> cycleIterator() { if (period != null) { return new RecurringIterator(); } else { @@ -166,7 +170,7 @@ public class RecurrenceRule implements Parcelable { } } - private class NonrecurringIterator implements Iterator<Pair<ZonedDateTime, ZonedDateTime>> { + private class NonrecurringIterator implements Iterator<Range<ZonedDateTime>> { boolean hasNext; public NonrecurringIterator() { @@ -179,13 +183,13 @@ public class RecurrenceRule implements Parcelable { } @Override - public Pair<ZonedDateTime, ZonedDateTime> next() { + public Range<ZonedDateTime> next() { hasNext = false; - return new Pair<>(start, end); + return new Range<>(start, end); } } - private class RecurringIterator implements Iterator<Pair<ZonedDateTime, ZonedDateTime>> { + private class RecurringIterator implements Iterator<Range<ZonedDateTime>> { int i; ZonedDateTime cycleStart; ZonedDateTime cycleEnd; @@ -231,12 +235,12 @@ public class RecurrenceRule implements Parcelable { } @Override - public Pair<ZonedDateTime, ZonedDateTime> next() { + public Range<ZonedDateTime> next() { if (LOGD) Log.d(TAG, "Cycle " + i + " from " + cycleStart + " to " + cycleEnd); - Pair<ZonedDateTime, ZonedDateTime> p = new Pair<>(cycleStart, cycleEnd); + Range<ZonedDateTime> r = new Range<>(cycleStart, cycleEnd); i--; updateCycle(); - return p; + return r; } } |