Skip to content

Commit f18e1ee

Browse files
committed
update DoubleKeyValueMap
1 parent 2dcf295 commit f18e1ee

File tree

2 files changed

+38
-5
lines changed

2 files changed

+38
-5
lines changed

library/src/com/lidroid/xutils/http/HttpHandler.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ public boolean updateProgress(long total, long current, boolean forceUpdateUI) {
305305
}
306306

307307
public enum State {
308-
WAITING(0), STARTED(1), LOADING(2), STOPPED(3), SUCCESS(4), FAILURE(-1);
308+
WAITING(0), STARTED(1), LOADING(2), FAILURE(3), STOPPED(4), SUCCESS(5);
309309
private int value = 0;
310310

311311
State(int value) {
@@ -321,13 +321,13 @@ public static State valueOf(int value) {
321321
case 2:
322322
return LOADING;
323323
case 3:
324-
return STOPPED;
324+
return FAILURE;
325325
case 4:
326+
return STOPPED;
327+
case 5:
326328
return SUCCESS;
327-
case -1:
328-
return FAILURE;
329329
default:
330-
return null;
330+
return FAILURE;
331331
}
332332
}
333333

library/src/com/lidroid/xutils/util/core/DoubleKeyValueMap.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
package com.lidroid.xutils.util.core;
1717

18+
import java.util.ArrayList;
19+
import java.util.Collection;
1820
import java.util.Set;
1921
import java.util.concurrent.ConcurrentHashMap;
2022

@@ -56,6 +58,26 @@ public V get(K1 key1, K2 key2) {
5658
return k2_v == null ? null : k2_v.get(key2);
5759
}
5860

61+
public Collection<V> getAllValues(K1 key1) {
62+
ConcurrentHashMap<K2, V> k2_v = k1_k2V_map.get(key1);
63+
return k2_v == null ? null : k2_v.values();
64+
}
65+
66+
public Collection<V> getAllValues() {
67+
Collection<V> result = null;
68+
Set<K1> k1Set = k1_k2V_map.keySet();
69+
if (k1Set != null) {
70+
result = new ArrayList<V>();
71+
for (K1 k1 : k1Set) {
72+
Collection<V> values = k1_k2V_map.get(k1).values();
73+
if (values != null) {
74+
result.addAll(values);
75+
}
76+
}
77+
}
78+
return result;
79+
}
80+
5981
public boolean containsKey(K1 key1, K2 key2) {
6082
if (k1_k2V_map.containsKey(key1)) {
6183
return k1_k2V_map.get(key1).containsKey(key2);
@@ -77,6 +99,17 @@ public int size() {
7799
return result;
78100
}
79101

102+
public void remove(K1 key1) {
103+
k1_k2V_map.remove(key1);
104+
}
105+
106+
public void remove(K1 key1, K2 key2) {
107+
ConcurrentHashMap<K2, V> k2_v = k1_k2V_map.get(key1);
108+
if (k2_v != null) {
109+
k2_v.remove(key2);
110+
}
111+
}
112+
80113
public void clear() {
81114
if (k1_k2V_map.size() > 0) {
82115
for (ConcurrentHashMap<K2, V> k2V_map : k1_k2V_map.values()) {

0 commit comments

Comments
 (0)