Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c582ef8 authored by Christian Mehlmauer's avatar Christian Mehlmauer
Browse files

Added an addAll to the ArrayAdapter

It behaves the same as ArrayList.addAll, since
the Object containing the Objects in the Adapter
is a List. Now you can add multiple Objects
at once, instead of looping over a Collection
and add all items one by one.
Unittests will be submitted to the cts project

Change-Id: I16f3286a8ca4cda7eb9f1a99c2aab1cc45b2550f
parent fdedc522
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -181308,6 +181308,32 @@
<parameter name="object" type="T">
</parameter>
</method>
<method name="addAll"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="collection" type="java.util.Collection&lt;? extends T&gt;">
</parameter>
</method>
<method name="addAll"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="items" type="T...">
</parameter>
</method>
<method name="clear"
 return="void"
 abstract="false"
@@ -197251,7 +197277,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="arg0" type="T">
<parameter name="t" type="T">
</parameter>
</method>
</interface>
+41 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Comparator;
import java.util.Collections;
@@ -180,6 +181,44 @@ public class ArrayAdapter<T> extends BaseAdapter implements Filterable {
        }
    }

    /**
     * Adds the specified Collection at the end of the array.
     *
     * @param collection The Collection to add at the end of the array.
     */
    public void addAll(Collection<? extends T> collection) {
        if (mOriginalValues != null) {
            synchronized (mLock) {
                mOriginalValues.addAll(collection);
                if (mNotifyOnChange) notifyDataSetChanged();
            }
        } else {
            mObjects.addAll(collection);
            if (mNotifyOnChange) notifyDataSetChanged();
        }
    }

    /**
     * Adds the specified items at the end of the array.
     *
     * @param items The items to add at the end of the array.
     */
    public void addAll(T ... items) {
        if (mOriginalValues != null) {
            synchronized (mLock) {
                for (T item : items) {
                    mOriginalValues.add(item);
                }
                if (mNotifyOnChange) notifyDataSetChanged();
            }
        } else {
            for (T item : items) {
                mObjects.add(item);
            }
            if (mNotifyOnChange) notifyDataSetChanged();
        }
    }

    /**
     * Inserts the specified object at the specified index in the array.
     *