use of im.actor.core.api.rpc.RequestRemoveAvatar in project actor-platform by actorapp.
the class OwnAvatarChangeActor method removeAvatar.
public void removeAvatar() {
if (currentChangeTask != 0) {
context().getFilesModule().cancelUpload(currentChangeTask);
currentChangeTask = 0;
}
currentChangeTask = RandomUtils.nextRid();
context().getProfileModule().getOwnAvatarVM().getUploadState().change(new AvatarUploadState(null, true));
final long currentRid = currentChangeTask;
request(new RequestRemoveAvatar(), new RpcCallback<ResponseSeq>() {
@Override
public void onResult(ResponseSeq response) {
updates().onUpdateReceived(new SeqUpdate(response.getSeq(), response.getState(), UpdateUserAvatarChanged.HEADER, new UpdateUserAvatarChanged(myUid(), null).toByteArray()));
// After update applied turn of uploading state
updates().onUpdateReceived(new ExecuteAfter(response.getSeq(), () -> self().send(new AvatarChanged(currentRid))));
}
@Override
public void onError(RpcException e) {
if (currentRid != currentChangeTask) {
return;
}
currentChangeTask = 0;
context().getProfileModule().getOwnAvatarVM().getUploadState().change(new AvatarUploadState(null, false));
}
});
}
Aggregations