kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix issue where images were not properly rendered for previews.
rodzic
f687840891
commit
9ad55e2360
|
@ -24,6 +24,7 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import androidx.viewpager2.widget.ViewPager2
|
||||
import app.cash.exhaustive.Exhaustive
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import org.signal.core.util.concurrent.SimpleTask
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
||||
import org.thoughtcrime.securesms.conversation.MessageSendType
|
||||
|
@ -41,6 +42,7 @@ import org.thoughtcrime.securesms.mediasend.v2.stories.StoriesMultiselectForward
|
|||
import org.thoughtcrime.securesms.mms.SentMediaQuality
|
||||
import org.thoughtcrime.securesms.permissions.Permissions
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.scribbles.ImageEditorFragment
|
||||
import org.thoughtcrime.securesms.util.LifecycleDisposable
|
||||
import org.thoughtcrime.securesms.util.MediaUtil
|
||||
import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter
|
||||
|
@ -167,8 +169,31 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
|||
)
|
||||
|
||||
if (sharedViewModel.isStory()) {
|
||||
val previews = sharedViewModel.state.value?.selectedMedia?.take(2)?.map { it.uri } ?: emptyList()
|
||||
storiesLauncher.launch(StoriesMultiselectForwardActivity.Args(args, previews))
|
||||
val snapshot = sharedViewModel.state.value
|
||||
|
||||
if (snapshot != null) {
|
||||
sendButton.isEnabled = false
|
||||
SimpleTask.run(viewLifecycleOwner.lifecycle, {
|
||||
snapshot.selectedMedia.take(2).map { media ->
|
||||
val editorData = snapshot.editorStateMap[media.uri]
|
||||
if (MediaUtil.isImageType(media.mimeType) && editorData != null && editorData is ImageEditorFragment.Data) {
|
||||
val model = editorData.readModel()
|
||||
if (model != null) {
|
||||
ImageEditorFragment.renderToSingleUseBlob(requireContext(), model)
|
||||
} else {
|
||||
media.uri
|
||||
}
|
||||
} else {
|
||||
media.uri
|
||||
}
|
||||
}
|
||||
}, {
|
||||
sendButton.isEnabled = true
|
||||
storiesLauncher.launch(StoriesMultiselectForwardActivity.Args(args, it))
|
||||
})
|
||||
} else {
|
||||
storiesLauncher.launch(StoriesMultiselectForwardActivity.Args(args, emptyList()))
|
||||
}
|
||||
} else {
|
||||
multiselectLauncher.launch(args)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.thoughtcrime.securesms.scribbles;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
|
@ -33,10 +34,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
|||
|
||||
import org.signal.core.util.FontUtil;
|
||||
import org.signal.core.util.concurrent.SignalExecutors;
|
||||
import org.signal.core.util.concurrent.SimpleTask;
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.imageeditor.core.Bounds;
|
||||
import org.signal.imageeditor.core.ColorableRenderer;
|
||||
import org.signal.imageeditor.core.HiddenEditText;
|
||||
import org.signal.imageeditor.core.ImageEditorView;
|
||||
import org.signal.imageeditor.core.Renderer;
|
||||
import org.signal.imageeditor.core.SelectableRenderer;
|
||||
|
@ -48,7 +49,6 @@ import org.signal.imageeditor.core.renderers.MultiLineTextRenderer;
|
|||
import org.signal.libsignal.protocol.util.Pair;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.animation.ResizeAnimation;
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiUtil;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.fonts.FontTypefaceProvider;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
|
@ -66,7 +66,6 @@ import org.thoughtcrime.securesms.util.StorageUtil;
|
|||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.ThrottledDebouncer;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.signal.core.util.concurrent.SimpleTask;
|
||||
import org.thoughtcrime.securesms.util.views.SimpleProgressDialog;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
@ -791,8 +790,13 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
|
|||
|
||||
@WorkerThread
|
||||
public @NonNull Uri renderToSingleUseBlob() {
|
||||
return renderToSingleUseBlob(requireContext(), imageEditorView.getModel());
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
public static @NonNull Uri renderToSingleUseBlob(@NonNull Context context, @NonNull EditorModel editorModel) {
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
Bitmap image = imageEditorView.getModel().render(requireContext(), new FontTypefaceProvider());
|
||||
Bitmap image = editorModel.render(context, new FontTypefaceProvider());
|
||||
|
||||
image.compress(Bitmap.CompressFormat.JPEG, 80, outputStream);
|
||||
image.recycle();
|
||||
|
|
Ładowanie…
Reference in New Issue