Fix #548
This commit is contained in:
@@ -68,7 +68,7 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>
|
|||||||
status.filterRevealed = true;
|
status.filterRevealed = true;
|
||||||
Bundle args=new Bundle();
|
Bundle args=new Bundle();
|
||||||
args.putString("account", accountID);
|
args.putString("account", accountID);
|
||||||
args.putParcelable("status", Parcels.wrap(status));
|
args.putParcelable("status", Parcels.wrap(status.clone()));
|
||||||
if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId))
|
if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId))
|
||||||
args.putParcelable("inReplyToAccount", Parcels.wrap(knownAccounts.get(status.inReplyToAccountId)));
|
args.putParcelable("inReplyToAccount", Parcels.wrap(knownAccounts.get(status.inReplyToAccountId)));
|
||||||
Nav.go(getActivity(), ThreadFragment.class, args);
|
Nav.go(getActivity(), ThreadFragment.class, args);
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ import java.lang.reflect.Field;
|
|||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
|
|
||||||
import androidx.annotation.CallSuper;
|
import androidx.annotation.CallSuper;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
public abstract class BaseModel{
|
public abstract class BaseModel implements Cloneable{
|
||||||
@CallSuper
|
@CallSuper
|
||||||
public void postprocess() throws ObjectValidationException{
|
public void postprocess() throws ObjectValidationException{
|
||||||
try{
|
try{
|
||||||
@@ -23,4 +24,14 @@ public abstract class BaseModel{
|
|||||||
}
|
}
|
||||||
}catch(IllegalAccessException ignore){}
|
}catch(IllegalAccessException ignore){}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Object clone(){
|
||||||
|
try{
|
||||||
|
return super.clone();
|
||||||
|
}catch(CloneNotSupportedException x){
|
||||||
|
throw new RuntimeException(x);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,10 +30,7 @@ public class PushSubscription extends BaseModel implements Cloneable{
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public PushSubscription clone(){
|
public PushSubscription clone(){
|
||||||
PushSubscription copy=null;
|
PushSubscription copy=(PushSubscription) super.clone();
|
||||||
try{
|
|
||||||
copy=(PushSubscription) super.clone();
|
|
||||||
}catch(CloneNotSupportedException ignore){}
|
|
||||||
copy.alerts=alerts.clone();
|
copy.alerts=alerts.clone();
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import java.lang.reflect.Type;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
@Parcel
|
@Parcel
|
||||||
public class Status extends BaseModel implements DisplayItemsParent, Searchable{
|
public class Status extends BaseModel implements DisplayItemsParent, Searchable{
|
||||||
@RequiredField
|
@RequiredField
|
||||||
@@ -190,8 +192,15 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
|
|||||||
return url;
|
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
|
@Override
|
||||||
public Status deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
public Status deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
JsonObject obj = json.getAsJsonObject();
|
JsonObject obj = json.getAsJsonObject();
|
||||||
|
|||||||
@@ -1395,7 +1395,7 @@ public class UiUtils {
|
|||||||
extras.putString("account", accountID);
|
extras.putString("account", accountID);
|
||||||
if (n.status!=null) {
|
if (n.status!=null) {
|
||||||
Status status=n.status;
|
Status status=n.status;
|
||||||
extras.putParcelable("status", Parcels.wrap(status));
|
extras.putParcelable("status", Parcels.wrap(status.clone()));
|
||||||
Nav.go((Activity) context, ThreadFragment.class, extras);
|
Nav.go((Activity) context, ThreadFragment.class, extras);
|
||||||
} else if (n.report != null) {
|
} else if (n.report != null) {
|
||||||
String domain = AccountSessionManager.getInstance().getAccount(accountID).domain;
|
String domain = AccountSessionManager.getInstance().getAccount(accountID).domain;
|
||||||
|
|||||||
Reference in New Issue
Block a user