mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Migrate all internal shares to MultiselectForwardFragment.
This commit is contained in:
committed by
Greyson Parrelli
parent
23939aeee3
commit
03e8fe9f27
@@ -13,11 +13,15 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment;
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs;
|
||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.sharing.ShareActivity;
|
||||
import org.thoughtcrime.securesms.sharing.MultiShareArgs;
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* Allows the user to view and manage (install, uninstall, etc) their stickers.
|
||||
*/
|
||||
@@ -46,6 +50,12 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity
|
||||
initView();
|
||||
initToolbar();
|
||||
initViewModel();
|
||||
|
||||
getSupportFragmentManager().setFragmentResultListener(MultiselectForwardFragment.RESULT_KEY, this, (requestKey, result) -> {
|
||||
if (result.getBoolean(MultiselectForwardFragment.RESULT_SENT, false)) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,10 +96,16 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity
|
||||
|
||||
@Override
|
||||
public void onStickerPackShareClicked(@NonNull String packId, @NonNull String packKey) {
|
||||
Intent composeIntent = new Intent(this, ShareActivity.class);
|
||||
composeIntent.putExtra(Intent.EXTRA_TEXT, StickerUrl.createShareLink(packId, packKey));
|
||||
startActivity(composeIntent);
|
||||
finish();
|
||||
MultiselectForwardFragment.showBottomSheet(
|
||||
getSupportFragmentManager(),
|
||||
new MultiselectForwardFragmentArgs(
|
||||
true,
|
||||
Collections.singletonList(new MultiShareArgs.Builder(Collections.emptySet())
|
||||
.withDraftText(StickerUrl.createShareLink(packId, packKey))
|
||||
.build()),
|
||||
R.string.MultiselectForwardFragment__share_with
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
|
||||
@@ -22,16 +22,19 @@ import org.signal.core.util.logging.Log;
|
||||
import org.signal.libsignal.protocol.util.Pair;
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment;
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs;
|
||||
import org.thoughtcrime.securesms.glide.cache.ApngOptions;
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader;
|
||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.sharing.ShareActivity;
|
||||
import org.thoughtcrime.securesms.sharing.MultiShareArgs;
|
||||
import org.thoughtcrime.securesms.stickers.StickerManifest.Sticker;
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties;
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
import org.whispersystems.signalservice.api.util.OptionalUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
@@ -40,9 +43,9 @@ import java.util.Optional;
|
||||
* (if installed). This is also the handler for sticker pack deep links.
|
||||
*/
|
||||
public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
implements StickerRolloverTouchListener.RolloverEventListener,
|
||||
StickerRolloverTouchListener.RolloverStickerRetriever,
|
||||
StickerPackPreviewAdapter.EventListener
|
||||
implements StickerRolloverTouchListener.RolloverEventListener,
|
||||
StickerRolloverTouchListener.RolloverStickerRetriever,
|
||||
StickerPackPreviewAdapter.EventListener
|
||||
{
|
||||
|
||||
private static final String TAG = Log.tag(StickerPackPreviewActivity.class);
|
||||
@@ -95,6 +98,12 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
initToolbar();
|
||||
initView();
|
||||
initViewModel(packId, packKey);
|
||||
|
||||
getSupportFragmentManager().setFragmentResultListener(MultiselectForwardFragment.RESULT_KEY, this, (requestKey, result) -> {
|
||||
if (result.getBoolean(MultiselectForwardFragment.RESULT_SENT, false)) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -193,12 +202,12 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
Sticker cover = OptionalUtil.or(manifest.getCover(), Optional.ofNullable(first)).orElse(null);
|
||||
|
||||
if (cover != null) {
|
||||
Object model = cover.getUri().isPresent() ? new DecryptableStreamUriLoader.DecryptableUri(cover.getUri().get())
|
||||
: new StickerRemoteUri(cover.getPackId(), cover.getPackKey(), cover.getId());
|
||||
Object model = cover.getUri().isPresent() ? new DecryptableStreamUriLoader.DecryptableUri(cover.getUri().get())
|
||||
: new StickerRemoteUri(cover.getPackId(), cover.getPackKey(), cover.getId());
|
||||
GlideApp.with(this).load(model)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.set(ApngOptions.ANIMATE, DeviceProperties.shouldAllowApngStickerAnimation(this))
|
||||
.into(coverImage);
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.set(ApngOptions.ANIMATE, DeviceProperties.shouldAllowApngStickerAnimation(this))
|
||||
.into(coverImage);
|
||||
} else {
|
||||
coverImage.setImageDrawable(null);
|
||||
}
|
||||
@@ -229,10 +238,16 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
shareButton.setVisibility(View.VISIBLE);
|
||||
shareButtonImage.setVisibility(View.VISIBLE);
|
||||
shareButton.setOnClickListener(v -> {
|
||||
Intent composeIntent = new Intent(this, ShareActivity.class);
|
||||
composeIntent.putExtra(Intent.EXTRA_TEXT, StickerUrl.createShareLink(packId, packKey));
|
||||
startActivity(composeIntent);
|
||||
finish();
|
||||
MultiselectForwardFragment.showBottomSheet(
|
||||
getSupportFragmentManager(),
|
||||
new MultiselectForwardFragmentArgs(
|
||||
true,
|
||||
Collections.singletonList(new MultiShareArgs.Builder(Collections.emptySet())
|
||||
.withDraftText(StickerUrl.createShareLink(packId, packKey))
|
||||
.build()),
|
||||
R.string.MultiselectForwardFragment__share_with
|
||||
)
|
||||
);
|
||||
});
|
||||
} else {
|
||||
shareButton.setVisibility(View.GONE);
|
||||
|
||||
Reference in New Issue
Block a user