From 85926e4e1cf94b5cf6b22db4480ac35587c6fd11 Mon Sep 17 00:00:00 2001 From: REAndroid Date: Sat, 18 Feb 2023 11:30:32 -0500 Subject: [PATCH] insert block in between array of blocks --- .../com/reandroid/arsc/base/BlockArray.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/reandroid/arsc/base/BlockArray.java b/src/main/java/com/reandroid/arsc/base/BlockArray.java index 4c93087..f7f728e 100755 --- a/src/main/java/com/reandroid/arsc/base/BlockArray.java +++ b/src/main/java/com/reandroid/arsc/base/BlockArray.java @@ -122,6 +122,25 @@ public abstract class BlockArray extends BlockContainer impl data[i].setIndex(i); } } + public void insertItem(int index, T item){ + int count = childesCount(); + if(count < index){ + count = index; + } + ensureSize(count + 1); + T[] childes = getChildes(); + int lastIndex = childes.length - 2; + for(int i = lastIndex; i >= index; i--){ + T exist = childes[i]; + childes[i] = null; + int newIndex = i + 1; + childes[newIndex] = exist; + exist.setIndex(newIndex); + } + childes[index] = item; + item.setParent(this); + item.setIndex(index); + } public void setItem(int index, T item){ ensureSize(index+1); elementData[index]=item;