1612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi/* 2612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * Copyright (C) 2017 The Android Open Source Project 3612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * 4612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * Licensed under the Apache License, Version 2.0 (the "License"); 5612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * you may not use this file except in compliance with the License. 6612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * You may obtain a copy of the License at 7612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * 8612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * http://www.apache.org/licenses/LICENSE-2.0 9612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * 10612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * Unless required by applicable law or agreed to in writing, software 11612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * distributed under the License is distributed on an "AS IS" BASIS, 12612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * See the License for the specific language governing permissions and 14612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * limitations under the License 15612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi */ 16612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 17612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggipackage com.android.server.wm; 18612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 19612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggiimport java.util.ArrayList; 20612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 21612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi/** 22612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * An {@link ArrayList} with extended functionality to be used as the children data structure in 23612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi * {@link WindowContainer}. 24612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi */ 25612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggiclass WindowList<E> extends ArrayList<E> { 26612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 27612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi void addFirst(E e) { 28612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi add(0, e); 29612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi } 30612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 31612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi E peekLast() { 32612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi return size() > 0 ? get(size() - 1) : null; 33612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi } 34612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi 35612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi E peekFirst() { 36612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi return size() > 0 ? get(0) : null; 37612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi } 38612bb885bcef87034070e8e3bfc0b0e953c0f606Jorim Jaggi} 39