in facebook-share/src/main/java/com/facebook/share/ShareApi.java [457:515]
private void stageArrayList(
final ArrayList arrayList,
final CollectionMapper.OnMapValueCompleteListener onArrayListStagedListener) {
final JSONArray stagedObject = new JSONArray();
final CollectionMapper.Collection<Integer> collection =
new CollectionMapper.Collection<Integer>() {
@Override
public Iterator<Integer> keyIterator() {
final int size = arrayList.size();
final Mutable<Integer> current = new Mutable<Integer>(0);
return new Iterator<Integer>() {
@Override
public boolean hasNext() {
return current.value < size;
}
@Override
public Integer next() {
return current.value++;
}
@Override
public void remove() {}
};
}
@Override
public Object get(Integer key) {
return arrayList.get(key);
}
@Override
public void set(
Integer key, Object value, CollectionMapper.OnErrorListener onErrorListener) {
try {
stagedObject.put(key, value);
} catch (final JSONException ex) {
String message = ex.getLocalizedMessage();
if (message == null) {
message = "Error staging object.";
}
onErrorListener.onError(new FacebookException(message));
}
}
};
final CollectionMapper.OnMapperCompleteListener onStagedArrayMapperCompleteListener =
new CollectionMapper.OnMapperCompleteListener() {
@Override
public void onComplete() {
onArrayListStagedListener.onComplete(stagedObject);
}
@Override
public void onError(FacebookException exception) {
onArrayListStagedListener.onError(exception);
}
};
stageCollectionValues(collection, onStagedArrayMapperCompleteListener);
}