This commit is contained in:
Grishka
2023-06-04 02:11:40 +03:00
committed by sk
parent 0665b8dd3b
commit 1b4579346b
5 changed files with 25 additions and 8 deletions

View File

@@ -8,8 +8,9 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
public abstract class BaseModel{
public abstract class BaseModel implements Cloneable{
@CallSuper
public void postprocess() throws ObjectValidationException{
try{
@@ -23,4 +24,14 @@ public abstract class BaseModel{
}
}catch(IllegalAccessException ignore){}
}
@NonNull
@Override
public Object clone(){
try{
return super.clone();
}catch(CloneNotSupportedException x){
throw new RuntimeException(x);
}
}
}

View File

@@ -30,10 +30,7 @@ public class PushSubscription extends BaseModel implements Cloneable{
@NonNull
@Override
public PushSubscription clone(){
PushSubscription copy=null;
try{
copy=(PushSubscription) super.clone();
}catch(CloneNotSupportedException ignore){}
PushSubscription copy=(PushSubscription) super.clone();
copy.alerts=alerts.clone();
return copy;
}

View File

@@ -20,6 +20,8 @@ import java.lang.reflect.Type;
import java.time.Instant;
import java.util.List;
import androidx.annotation.NonNull;
@Parcel
public class Status extends BaseModel implements DisplayItemsParent, Searchable{
@RequiredField
@@ -190,8 +192,15 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
return url;
}
public static class StatusDeserializer implements JsonDeserializer<Status> {
@NonNull
@Override
public Status clone(){
Status copy=(Status) super.clone();
copy.spoilerRevealed=false;
return copy;
}
public static class StatusDeserializer implements JsonDeserializer<Status> {
@Override
public Status deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonObject obj = json.getAsJsonObject();