11e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin/* 21e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * Copyright (C) 2010 The Android Open Source Project 31e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * 41e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * Licensed under the Apache License, Version 2.0 (the "License"); 51e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * you may not use this file except in compliance with the License. 61e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * You may obtain a copy of the License at 71e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * 81e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * http://www.apache.org/licenses/LICENSE-2.0 91e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * 101e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * Unless required by applicable law or agreed to in writing, software 111e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * distributed under the License is distributed on an "AS IS" BASIS, 121e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * See the License for the specific language governing permissions and 141e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin * limitations under the License. 151e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin */ 161e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 171e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Linpackage com.android.camera; 181e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 191e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Linpublic class IntArray { 201e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin private static final int INIT_CAPACITY = 8; 211e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 221e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin private int mData[] = new int[INIT_CAPACITY]; 231e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin private int mSize = 0; 241e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 251e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin public void add(int value) { 261e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin if (mData.length == mSize) { 271e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin int temp[] = new int[mSize + mSize]; 281e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin System.arraycopy(mData, 0, temp, 0, mSize); 291e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin mData = temp; 301e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin } 311e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin mData[mSize++] = value; 321e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin } 331e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 341e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin public int size() { 351e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin return mSize; 361e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin } 371e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin 381e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin public int[] toArray(int[] result) { 391e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin if (result == null || result.length < mSize) { 401e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin result = new int[mSize]; 411e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin } 421e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin System.arraycopy(mData, 0, result, 0, mSize); 431e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin return result; 441e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin } 451e7d70c59c3547db7589c1cae977e98d9b4e95b9Owen Lin} 46