kopia lustrzana https://github.com/ryukoposting/Signal-Android
Hide quality selector when no images selected.
rodzic
0972d8f1e1
commit
9f2d57493d
|
@ -367,7 +367,6 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
|
|||
|
||||
revealButton.setOnClickListener(v -> viewModel.onRevealButtonToggled());
|
||||
|
||||
qualityButton.setVisibility(Util.isLowMemory(this) ? View.GONE : View.VISIBLE);
|
||||
qualityButton.setOnClickListener(v -> QualitySelectorBottomSheetDialog.show(getSupportFragmentManager()));
|
||||
|
||||
continueButton.setOnClickListener(v -> {
|
||||
|
@ -785,6 +784,7 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
|
|||
}
|
||||
});
|
||||
|
||||
viewModel.getShowMediaQualityToggle().observe(this, show -> qualityButton.setVisibility(show && !Util.isLowMemory(this) ? View.VISIBLE : View.GONE));
|
||||
viewModel.getSentMediaQuality().observe(this, q -> qualityButton.setImageResource(q == SentMediaQuality.STANDARD ? R.drawable.ic_quality_standard_32 : R.drawable.ic_quality_high_32));
|
||||
|
||||
viewModel.getSelectedMedia().observe(this, media -> {
|
||||
|
|
|
@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.util.MessageUtil;
|
|||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.libsignal.util.guava.Preconditions;
|
||||
|
||||
|
@ -67,6 +68,7 @@ class MediaSendViewModel extends ViewModel {
|
|||
private final SingleLiveEvent<Error> error;
|
||||
private final SingleLiveEvent<Event> event;
|
||||
private final MutableLiveData<SentMediaQuality> sentMediaQuality;
|
||||
private final LiveData<Boolean> showMediaQualityToggle;
|
||||
private final Map<Uri, Object> savedDrawState;
|
||||
|
||||
private TransportOption transport;
|
||||
|
@ -93,27 +95,28 @@ class MediaSendViewModel extends ViewModel {
|
|||
@NonNull MediaRepository repository,
|
||||
@NonNull MediaUploadRepository uploadRepository)
|
||||
{
|
||||
this.application = application;
|
||||
this.repository = repository;
|
||||
this.uploadRepository = uploadRepository;
|
||||
this.selectedMedia = new MutableLiveData<>();
|
||||
this.bucketMedia = new MutableLiveData<>();
|
||||
this.mostRecentMedia = new MutableLiveData<>();
|
||||
this.position = new MutableLiveData<>();
|
||||
this.bucketId = new MutableLiveData<>();
|
||||
this.folders = new MutableLiveData<>();
|
||||
this.hudState = new MutableLiveData<>();
|
||||
this.error = new SingleLiveEvent<>();
|
||||
this.event = new SingleLiveEvent<>();
|
||||
this.sentMediaQuality = new MutableLiveData<>(SentMediaQuality.STANDARD);
|
||||
this.savedDrawState = new HashMap<>();
|
||||
this.lastCameraCapture = Optional.absent();
|
||||
this.body = "";
|
||||
this.buttonState = ButtonState.GONE;
|
||||
this.railState = RailState.GONE;
|
||||
this.viewOnceState = ViewOnceState.GONE;
|
||||
this.page = Page.UNKNOWN;
|
||||
this.preUploadEnabled = true;
|
||||
this.application = application;
|
||||
this.repository = repository;
|
||||
this.uploadRepository = uploadRepository;
|
||||
this.selectedMedia = new MutableLiveData<>();
|
||||
this.bucketMedia = new MutableLiveData<>();
|
||||
this.mostRecentMedia = new MutableLiveData<>();
|
||||
this.position = new MutableLiveData<>();
|
||||
this.bucketId = new MutableLiveData<>();
|
||||
this.folders = new MutableLiveData<>();
|
||||
this.hudState = new MutableLiveData<>();
|
||||
this.error = new SingleLiveEvent<>();
|
||||
this.event = new SingleLiveEvent<>();
|
||||
this.sentMediaQuality = new MutableLiveData<>(SentMediaQuality.STANDARD);
|
||||
this.savedDrawState = new HashMap<>();
|
||||
this.lastCameraCapture = Optional.absent();
|
||||
this.body = "";
|
||||
this.buttonState = ButtonState.GONE;
|
||||
this.railState = RailState.GONE;
|
||||
this.viewOnceState = ViewOnceState.GONE;
|
||||
this.page = Page.UNKNOWN;
|
||||
this.preUploadEnabled = true;
|
||||
this.showMediaQualityToggle = LiveDataUtil.mapAsync(this.selectedMedia, s -> s.stream().anyMatch(m -> MediaUtil.isImageAndNotGif(m.getMimeType())));
|
||||
|
||||
position.setValue(-1);
|
||||
}
|
||||
|
@ -577,6 +580,10 @@ class MediaSendViewModel extends ViewModel {
|
|||
return sentMediaQuality;
|
||||
}
|
||||
|
||||
@NonNull LiveData<Boolean> getShowMediaQualityToggle() {
|
||||
return showMediaQualityToggle;
|
||||
}
|
||||
|
||||
@NonNull MediaConstraints getMediaConstraints() {
|
||||
return mediaConstraints;
|
||||
}
|
||||
|
|
|
@ -313,6 +313,10 @@ public class MediaUtil {
|
|||
return isImageType(contentType) || isVideoType(contentType);
|
||||
}
|
||||
|
||||
public static boolean isImageAndNotGif(@NonNull String contentType) {
|
||||
return isImageType(contentType) && !isGif(contentType);
|
||||
}
|
||||
|
||||
public static boolean isLongTextType(String contentType) {
|
||||
return (null != contentType) && contentType.equals(LONG_TEXT);
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue