Skip to content

Commit

Permalink
Layers: API improvements (#1033)
Browse files Browse the repository at this point in the history
  • Loading branch information
devemux86 authored Apr 12, 2023
1 parent 25d28ad commit 6342756
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions vtm/src/org/oscim/map/Layers.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,21 @@ public synchronized Layer get(int index) {
return mLayerList.get(index);
}

public synchronized List<Integer> getGroups() {
return mGroupList;
}

@Override
public synchronized int size() {
return mLayerList.size();
}

@Override
public synchronized void add(int index, Layer layer) {
if (mLayerList.contains(layer))
throw new IllegalArgumentException("layer added twice");
if (mLayerList.contains(layer)) {
log.warn("layer already exists");
return;
}

// bind added layer
if (layer instanceof UpdateListener)
Expand Down Expand Up @@ -110,11 +116,15 @@ public synchronized void add(int index, Layer layer) {
* Add using layer groups.
*/
public synchronized void add(Layer layer, int group) {
if (mLayerList.contains(layer)) {
log.warn("layer already exists");
return;
}
int index = mGroupList.indexOf(group);
if (index < 0)
throw new IllegalArgumentException("unknown layer group");
if (mLayerList.contains(layer))
throw new IllegalArgumentException("layer added twice");
if (index < 0) {
log.warn("unknown / adding layer group" + group);
addGroup(group);
}

index++;
if (index == mGroupList.size())
Expand Down Expand Up @@ -169,8 +179,10 @@ public synchronized Layer remove(int index) {

@Override
public synchronized Layer set(int index, Layer layer) {
if (mLayerList.contains(layer))
throw new IllegalArgumentException("layer added twice");
if (mLayerList.contains(layer)) {
log.warn("layer already exists");
return layer;
}

mDirtyLayers = true;
Layer remove = mLayerList.set(index, layer);
Expand Down Expand Up @@ -202,8 +214,10 @@ public synchronized Layer set(int index, Layer layer) {
}

public synchronized void addGroup(int group) {
if (mGroupList.contains(group))
throw new IllegalArgumentException("group added twice");
if (mGroupList.contains(group)) {
log.warn("group " + group + " already exists");
return;
}

mGroupList.add(group);
mGroupIndex.put(group, mLayerList.size());
Expand Down

0 comments on commit 6342756

Please sign in to comment.