|
|
@ -1,4 +1,4 @@
|
|
|
|
package org.session.libsession.messaging.jobs;
|
|
|
|
package org.session.libsession.messaging.utilities;
|
|
|
|
|
|
|
|
|
|
|
|
import android.os.Parcelable;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
|
|
|
|
|
|
|
@ -12,11 +12,7 @@ import org.session.libsession.utilities.ParcelableUtil;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
// Introduce a dedicated Map<String, byte[]> field specifically for parcelable needs.
|
|
|
|
|
|
|
|
public class Data {
|
|
|
|
public class Data {
|
|
|
|
|
|
|
|
|
|
|
|
public static final Data EMPTY = new Data.Builder().build();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@JsonProperty private final Map<String, String> strings;
|
|
|
|
@JsonProperty private final Map<String, String> strings;
|
|
|
|
@JsonProperty private final Map<String, String[]> stringArrays;
|
|
|
|
@JsonProperty private final Map<String, String[]> stringArrays;
|
|
|
|
@JsonProperty private final Map<String, Integer> integers;
|
|
|
|
@JsonProperty private final Map<String, Integer> integers;
|
|
|
@ -31,7 +27,10 @@ public class Data {
|
|
|
|
@JsonProperty private final Map<String, boolean[]> booleanArrays;
|
|
|
|
@JsonProperty private final Map<String, boolean[]> booleanArrays;
|
|
|
|
@JsonProperty private final Map<String, byte[]> byteArrays;
|
|
|
|
@JsonProperty private final Map<String, byte[]> byteArrays;
|
|
|
|
|
|
|
|
|
|
|
|
public Data(@JsonProperty("strings") @NonNull Map<String, String> strings,
|
|
|
|
public static final Data EMPTY = new Data.Builder().build();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Data(
|
|
|
|
|
|
|
|
@JsonProperty("strings") @NonNull Map<String, String> strings,
|
|
|
|
@JsonProperty("stringArrays") @NonNull Map<String, String[]> stringArrays,
|
|
|
|
@JsonProperty("stringArrays") @NonNull Map<String, String[]> stringArrays,
|
|
|
|
@JsonProperty("integers") @NonNull Map<String, Integer> integers,
|
|
|
|
@JsonProperty("integers") @NonNull Map<String, Integer> integers,
|
|
|
|
@JsonProperty("integerArrays") @NonNull Map<String, int[]> integerArrays,
|
|
|
|
@JsonProperty("integerArrays") @NonNull Map<String, int[]> integerArrays,
|
|
|
@ -43,8 +42,8 @@ public class Data {
|
|
|
|
@JsonProperty("doubleArrays") @NonNull Map<String, double[]> doubleArrays,
|
|
|
|
@JsonProperty("doubleArrays") @NonNull Map<String, double[]> doubleArrays,
|
|
|
|
@JsonProperty("booleans") @NonNull Map<String, Boolean> booleans,
|
|
|
|
@JsonProperty("booleans") @NonNull Map<String, Boolean> booleans,
|
|
|
|
@JsonProperty("booleanArrays") @NonNull Map<String, boolean[]> booleanArrays,
|
|
|
|
@JsonProperty("booleanArrays") @NonNull Map<String, boolean[]> booleanArrays,
|
|
|
|
@JsonProperty("byteArrays") @NonNull Map<String, byte[]> byteArrays)
|
|
|
|
@JsonProperty("byteArrays") @NonNull Map<String, byte[]> byteArrays
|
|
|
|
{
|
|
|
|
) {
|
|
|
|
this.strings = strings;
|
|
|
|
this.strings = strings;
|
|
|
|
this.stringArrays = stringArrays;
|
|
|
|
this.stringArrays = stringArrays;
|
|
|
|
this.integers = integers;
|
|
|
|
this.integers = integers;
|
|
|
@ -75,6 +74,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasStringArray(@NonNull String key) {
|
|
|
|
public boolean hasStringArray(@NonNull String key) {
|
|
|
|
return stringArrays.containsKey(key);
|
|
|
|
return stringArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -100,6 +100,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasIntegerArray(@NonNull String key) {
|
|
|
|
public boolean hasIntegerArray(@NonNull String key) {
|
|
|
|
return integerArrays.containsKey(key);
|
|
|
|
return integerArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -110,6 +111,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasLong(@NonNull String key) {
|
|
|
|
public boolean hasLong(@NonNull String key) {
|
|
|
|
return longs.containsKey(key);
|
|
|
|
return longs.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -125,6 +127,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasLongArray(@NonNull String key) {
|
|
|
|
public boolean hasLongArray(@NonNull String key) {
|
|
|
|
return longArrays.containsKey(key);
|
|
|
|
return longArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -135,6 +138,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasFloat(@NonNull String key) {
|
|
|
|
public boolean hasFloat(@NonNull String key) {
|
|
|
|
return floats.containsKey(key);
|
|
|
|
return floats.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -150,6 +154,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasFloatArray(@NonNull String key) {
|
|
|
|
public boolean hasFloatArray(@NonNull String key) {
|
|
|
|
return floatArrays.containsKey(key);
|
|
|
|
return floatArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -160,6 +165,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasDouble(@NonNull String key) {
|
|
|
|
public boolean hasDouble(@NonNull String key) {
|
|
|
|
return doubles.containsKey(key);
|
|
|
|
return doubles.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -175,6 +181,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasDoubleArray(@NonNull String key) {
|
|
|
|
public boolean hasDoubleArray(@NonNull String key) {
|
|
|
|
return floatArrays.containsKey(key);
|
|
|
|
return floatArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -185,6 +192,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasBoolean(@NonNull String key) {
|
|
|
|
public boolean hasBoolean(@NonNull String key) {
|
|
|
|
return booleans.containsKey(key);
|
|
|
|
return booleans.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -200,6 +208,7 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasBooleanArray(@NonNull String key) {
|
|
|
|
public boolean hasBooleanArray(@NonNull String key) {
|
|
|
|
return booleanArrays.containsKey(key);
|
|
|
|
return booleanArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -209,6 +218,8 @@ public class Data {
|
|
|
|
return booleanArrays.get(key);
|
|
|
|
return booleanArrays.get(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasByteArray(@NonNull String key) {
|
|
|
|
public boolean hasByteArray(@NonNull String key) {
|
|
|
|
return byteArrays.containsKey(key);
|
|
|
|
return byteArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -218,6 +229,8 @@ public class Data {
|
|
|
|
return byteArrays.get(key);
|
|
|
|
return byteArrays.get(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean hasParcelable(@NonNull String key) {
|
|
|
|
public boolean hasParcelable(@NonNull String key) {
|
|
|
|
return byteArrays.containsKey(key);
|
|
|
|
return byteArrays.containsKey(key);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -228,6 +241,8 @@ public class Data {
|
|
|
|
return ParcelableUtil.unmarshall(bytes, creator);
|
|
|
|
return ParcelableUtil.unmarshall(bytes, creator);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void throwIfAbsent(@NonNull Map map, @NonNull String key) {
|
|
|
|
private void throwIfAbsent(@NonNull Map map, @NonNull String key) {
|
|
|
|
if (!map.containsKey(key)) {
|
|
|
|
if (!map.containsKey(key)) {
|
|
|
|
throw new IllegalStateException("Tried to retrieve a value with key '" + key + "', but it wasn't present.");
|
|
|
|
throw new IllegalStateException("Tried to retrieve a value with key '" + key + "', but it wasn't present.");
|
|
|
@ -236,7 +251,6 @@ public class Data {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static class Builder {
|
|
|
|
public static class Builder {
|
|
|
|
|
|
|
|
|
|
|
|
private final Map<String, String> strings = new HashMap<>();
|
|
|
|
private final Map<String, String> strings = new HashMap<>();
|
|
|
|
private final Map<String, String[]> stringArrays = new HashMap<>();
|
|
|
|
private final Map<String, String[]> stringArrays = new HashMap<>();
|
|
|
|
private final Map<String, Integer> integers = new HashMap<>();
|
|
|
|
private final Map<String, Integer> integers = new HashMap<>();
|
|
|
@ -323,7 +337,8 @@ public class Data {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Data build() {
|
|
|
|
public Data build() {
|
|
|
|
return new Data(strings,
|
|
|
|
return new Data(
|
|
|
|
|
|
|
|
strings,
|
|
|
|
stringArrays,
|
|
|
|
stringArrays,
|
|
|
|
integers,
|
|
|
|
integers,
|
|
|
|
integerArrays,
|
|
|
|
integerArrays,
|
|
|
@ -335,7 +350,8 @@ public class Data {
|
|
|
|
doubleArrays,
|
|
|
|
doubleArrays,
|
|
|
|
booleans,
|
|
|
|
booleans,
|
|
|
|
booleanArrays,
|
|
|
|
booleanArrays,
|
|
|
|
byteArrays);
|
|
|
|
byteArrays
|
|
|
|
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -344,4 +360,3 @@ public class Data {
|
|
|
|
@NonNull Data deserialize(@NonNull String serialized);
|
|
|
|
@NonNull Data deserialize(@NonNull String serialized);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|