1f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk/* 2f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * Copyright (C) 2017 The Android Open Source Project 3f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * 4f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * except in compliance with the License. You may obtain a copy of the License at 6f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * 7f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * http://www.apache.org/licenses/LICENSE-2.0 8f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * 9f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * Unless required by applicable law or agreed to in writing, software distributed under the 10f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * KIND, either express or implied. See the License for the specific language governing 12f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * permissions and limitations under the License. 13f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk */ 14f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk 15f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monkpackage com.android.systemui.util; 16f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk 17f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monkimport java.util.List; 18f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monkimport java.util.function.Consumer; 19f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk 20f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monkpublic class Utils { 21f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk 22f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk /** 23f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * Allows lambda iteration over a list. It is done in reverse order so it is safe 24f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk * to add or remove items during the iteration. 25f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk */ 26f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk public static <T> void safeForeach(List<T> list, Consumer<T> c) { 27f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk for (int i = list.size() - 1; i >= 0; i--) { 28f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk c.accept(list.get(i)); 29f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk } 30f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk } 31f66d377a6828fcad07fa16f619a88ab97bb96983Jason Monk} 32