Always update ViewOnceState before rendering hud.

This commit is contained in:
Alex Hart 2021-06-21 14:27:28 -03:00 committed by GitHub
parent 3a151b30ac
commit b3041ab6e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -236,12 +236,8 @@ class MediaSendViewModel extends ViewModel {
captionVisible = getSelectedMediaOrDefault().size() > 1 || (getSelectedMediaOrDefault().size() > 0 && getSelectedMediaOrDefault().get(0).getCaption().isPresent()); captionVisible = getSelectedMediaOrDefault().size() > 1 || (getSelectedMediaOrDefault().size() > 0 && getSelectedMediaOrDefault().get(0).getCaption().isPresent());
buttonState = (recipient != null) ? ButtonState.SEND : ButtonState.CONTINUE; buttonState = (recipient != null) ? ButtonState.SEND : ButtonState.CONTINUE;
if (viewOnceState == ViewOnceState.GONE && viewOnceSupported()) { updateViewOnceState();
viewOnceState = ViewOnceState.DISABLED; showViewOnceTooltipIfNecessary(viewOnceState);
showViewOnceTooltipIfNecessary(viewOnceState);
} else if (!viewOnceSupported()) {
viewOnceState = ViewOnceState.GONE;
}
railState = !isSms && viewOnceState != ViewOnceState.ENABLED ? RailState.INTERACTIVE : RailState.GONE; railState = !isSms && viewOnceState != ViewOnceState.ENABLED ? RailState.INTERACTIVE : RailState.GONE;
composeVisible = viewOnceState != ViewOnceState.ENABLED; composeVisible = viewOnceState != ViewOnceState.ENABLED;
@ -590,6 +586,15 @@ class MediaSendViewModel extends ViewModel {
return mediaConstraints; return mediaConstraints;
} }
private void updateViewOnceState() {
if (viewOnceState == ViewOnceState.GONE && viewOnceSupported()) {
showViewOnceTooltipIfNecessary(viewOnceState);
viewOnceState = ViewOnceState.DISABLED;
} else if (!viewOnceSupported()) {
viewOnceState = ViewOnceState.GONE;
}
}
private @NonNull List<Media> getSelectedMediaOrDefault() { private @NonNull List<Media> getSelectedMediaOrDefault() {
return selectedMedia.getValue() == null ? Collections.emptyList() return selectedMedia.getValue() == null ? Collections.emptyList()
: selectedMedia.getValue(); : selectedMedia.getValue();
@ -613,6 +618,8 @@ class MediaSendViewModel extends ViewModel {
ButtonState updatedButtonState = buttonState == ButtonState.COUNT && selectionCount == 0 ? ButtonState.GONE : buttonState; ButtonState updatedButtonState = buttonState == ButtonState.COUNT && selectionCount == 0 ? ButtonState.GONE : buttonState;
boolean updatedCaptionVisible = captionVisible && (selectedMedia.size() > 1 || (selectedMedia.size() > 0 && selectedMedia.get(0).getCaption().isPresent())); boolean updatedCaptionVisible = captionVisible && (selectedMedia.size() > 1 || (selectedMedia.size() > 0 && selectedMedia.get(0).getCaption().isPresent()));
updateViewOnceState();
return new HudState(hudVisible, composeVisible, updatedCaptionVisible, selectionCount, updatedButtonState, railState, viewOnceState); return new HudState(hudVisible, composeVisible, updatedCaptionVisible, selectionCount, updatedButtonState, railState, viewOnceState);
} }