mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
committed by
Nicholas Tinsley
parent
aa33fd44b8
commit
ec96b4e3aa
@@ -11,11 +11,12 @@ import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
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.MultiShareArgs;
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
@@ -110,7 +111,7 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity
|
||||
|
||||
private void initView() {
|
||||
this.list = findViewById(R.id.sticker_management_list);
|
||||
this.adapter = new StickerManagementAdapter(GlideApp.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this));
|
||||
this.adapter = new StickerManagementAdapter(Glide.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this));
|
||||
|
||||
list.setLayoutManager(new LinearLayoutManager(this));
|
||||
list.setAdapter(adapter);
|
||||
|
||||
@@ -17,6 +17,7 @@ import androidx.annotation.StringRes;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
@@ -24,7 +25,6 @@ import org.thoughtcrime.securesms.components.emoji.EmojiTextView;
|
||||
import org.thoughtcrime.securesms.database.model.StickerPackRecord;
|
||||
import org.thoughtcrime.securesms.glide.cache.ApngOptions;
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
import org.thoughtcrime.securesms.util.DrawableUtil;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.SectionedRecyclerViewAdapter;
|
||||
@@ -40,7 +40,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
private static final String TAG_MESSAGE_STICKERS = "MessageStickers";
|
||||
private static final String TAG_BLESSED_STICKERS = "BlessedStickers";
|
||||
|
||||
private final GlideRequests glideRequests;
|
||||
private final RequestManager requestManager;
|
||||
private final EventListener eventListener;
|
||||
private final boolean allowApngAnimation;
|
||||
|
||||
@@ -60,8 +60,8 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
add(messageStickers);
|
||||
}};
|
||||
|
||||
StickerManagementAdapter(@NonNull GlideRequests glideRequests, @NonNull EventListener eventListener, boolean allowApngAnimation) {
|
||||
this.glideRequests = glideRequests;
|
||||
StickerManagementAdapter(@NonNull RequestManager requestManager, @NonNull EventListener eventListener, boolean allowApngAnimation) {
|
||||
this.requestManager = requestManager;
|
||||
this.eventListener = eventListener;
|
||||
this.allowApngAnimation = allowApngAnimation;
|
||||
}
|
||||
@@ -88,7 +88,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
|
||||
@Override
|
||||
public void bindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, @NonNull StickerSection section, int localPosition) {
|
||||
section.bindViewHolder(viewHolder, localPosition, glideRequests, eventListener, allowApngAnimation);
|
||||
section.bindViewHolder(viewHolder, localPosition, requestManager, eventListener, allowApngAnimation);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -203,7 +203,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
|
||||
void bindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder,
|
||||
int localPosition,
|
||||
@NonNull GlideRequests glideRequests,
|
||||
@NonNull RequestManager requestManager,
|
||||
@NonNull EventListener eventListener,
|
||||
boolean allowApngAnimation)
|
||||
{
|
||||
@@ -212,7 +212,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
} else if (records.isEmpty()) {
|
||||
((EmptyViewHolder) viewHolder).bind(emptyResId);
|
||||
} else {
|
||||
((StickerViewHolder) viewHolder).bind(glideRequests, eventListener, records.get(localPosition - 1), localPosition == records.size(), allowApngAnimation);
|
||||
((StickerViewHolder) viewHolder).bind(requestManager, eventListener, records.get(localPosition - 1), localPosition == records.size(), allowApngAnimation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
this.blessedBadge = buildBlessedBadge(itemView.getContext());
|
||||
}
|
||||
|
||||
void bind(@NonNull GlideRequests glideRequests,
|
||||
void bind(@NonNull RequestManager requestManager,
|
||||
@NonNull EventListener eventListener,
|
||||
@NonNull StickerPackRecord stickerPack,
|
||||
boolean lastInList,
|
||||
@@ -273,7 +273,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
||||
author.setText(stickerPack.getAuthor().orElse(itemView.getResources().getString(R.string.StickerManagementAdapter_unknown)));
|
||||
divider.setVisibility(lastInList ? View.GONE : View.VISIBLE);
|
||||
|
||||
glideRequests.load(new DecryptableUri(stickerPack.getCover().getUri()))
|
||||
requestManager.load(new DecryptableUri(stickerPack.getCover().getUri()))
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.fitCenter()
|
||||
.set(ApngOptions.ANIMATE, allowApngAnimation)
|
||||
|
||||
@@ -16,6 +16,7 @@ import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
@@ -26,7 +27,6 @@ import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectFor
|
||||
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.MultiShareArgs;
|
||||
import org.thoughtcrime.securesms.stickers.StickerManifest.Sticker;
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties;
|
||||
@@ -154,9 +154,9 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
this.shareButton = findViewById(R.id.sticker_install_share_button);
|
||||
this.shareButtonImage = findViewById(R.id.sticker_install_share_button_image);
|
||||
|
||||
this.adapter = new StickerPackPreviewAdapter(GlideApp.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this));
|
||||
this.adapter = new StickerPackPreviewAdapter(Glide.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this));
|
||||
this.layoutManager = new GridLayoutManager(this, 2);
|
||||
this.touchListener = new StickerRolloverTouchListener(this, GlideApp.with(this), this, this);
|
||||
this.touchListener = new StickerRolloverTouchListener(this, Glide.with(this), this, this);
|
||||
onScreenWidthChanged(getScreenWidth());
|
||||
|
||||
stickerList.setLayoutManager(layoutManager);
|
||||
@@ -204,7 +204,7 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActivity
|
||||
if (cover != null) {
|
||||
Object model = cover.getUri().isPresent() ? new DecryptableStreamUriLoader.DecryptableUri(cover.getUri().get())
|
||||
: new StickerRemoteUri(cover.getPackId(), cover.getPackKey(), cover.getId());
|
||||
GlideApp.with(this).load(model)
|
||||
Glide.with(this).load(model)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.fitCenter()
|
||||
.set(ApngOptions.ANIMATE, DeviceProperties.shouldAllowApngStickerAnimation(this))
|
||||
|
||||
@@ -9,25 +9,25 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.glide.cache.ApngOptions;
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public final class StickerPackPreviewAdapter extends RecyclerView.Adapter<StickerPackPreviewAdapter.StickerViewHolder> {
|
||||
|
||||
private final GlideRequests glideRequests;
|
||||
private final RequestManager requestManager;
|
||||
private final EventListener eventListener;
|
||||
private final List<StickerManifest.Sticker> list;
|
||||
private final boolean allowApngAnimation;
|
||||
|
||||
public StickerPackPreviewAdapter(@NonNull GlideRequests glideRequests, @NonNull EventListener eventListener, boolean allowApngAnimation) {
|
||||
this.glideRequests = glideRequests;
|
||||
public StickerPackPreviewAdapter(@NonNull RequestManager requestManager, @NonNull EventListener eventListener, boolean allowApngAnimation) {
|
||||
this.requestManager = requestManager;
|
||||
this.eventListener = eventListener;
|
||||
this.allowApngAnimation = allowApngAnimation;
|
||||
this.list = new ArrayList<>();
|
||||
@@ -40,7 +40,7 @@ public final class StickerPackPreviewAdapter extends RecyclerView.Adapter<Sticke
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull StickerViewHolder stickerViewHolder, int i) {
|
||||
stickerViewHolder.bind(glideRequests, list.get(i), eventListener, allowApngAnimation);
|
||||
stickerViewHolder.bind(requestManager, list.get(i), eventListener, allowApngAnimation);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,7 +71,7 @@ public final class StickerPackPreviewAdapter extends RecyclerView.Adapter<Sticke
|
||||
this.image = itemView.findViewById(R.id.sticker_install_item_image);
|
||||
}
|
||||
|
||||
void bind(@NonNull GlideRequests glideRequests,
|
||||
void bind(@NonNull RequestManager requestManager,
|
||||
@NonNull StickerManifest.Sticker sticker,
|
||||
@NonNull EventListener eventListener,
|
||||
boolean allowApngAnimation)
|
||||
@@ -79,7 +79,7 @@ public final class StickerPackPreviewAdapter extends RecyclerView.Adapter<Sticke
|
||||
currentEmoji = sticker.getEmoji();
|
||||
currentGlideModel = sticker.getUri().isPresent() ? new DecryptableStreamUriLoader.DecryptableUri(sticker.getUri().get())
|
||||
: new StickerRemoteUri(sticker.getPackId(), sticker.getPackKey(), sticker.getId());
|
||||
glideRequests.load(currentGlideModel)
|
||||
requestManager.load(currentGlideModel)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.set(ApngOptions.ANIMATE, allowApngAnimation)
|
||||
.centerInside()
|
||||
|
||||
@@ -10,10 +10,10 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
|
||||
|
||||
/**
|
||||
@@ -21,24 +21,24 @@ import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
*/
|
||||
final class StickerPreviewPopup extends PopupWindow {
|
||||
|
||||
private final GlideRequests glideRequests;
|
||||
private final ImageView image;
|
||||
private final TextView emojiText;
|
||||
private final RequestManager requestManager;
|
||||
private final ImageView image;
|
||||
private final TextView emojiText;
|
||||
|
||||
StickerPreviewPopup(@NonNull Context context, @NonNull GlideRequests glideRequests) {
|
||||
StickerPreviewPopup(@NonNull Context context, @NonNull RequestManager requestManager) {
|
||||
super(LayoutInflater.from(context).inflate(R.layout.sticker_preview_popup, null),
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
this.glideRequests = glideRequests;
|
||||
this.image = getContentView().findViewById(R.id.sticker_popup_image);
|
||||
this.emojiText = getContentView().findViewById(R.id.sticker_popup_emoji);
|
||||
this.requestManager = requestManager;
|
||||
this.image = getContentView().findViewById(R.id.sticker_popup_image);
|
||||
this.emojiText = getContentView().findViewById(R.id.sticker_popup_emoji);
|
||||
|
||||
setTouchable(false);
|
||||
}
|
||||
|
||||
void presentSticker(@NonNull Object stickerGlideModel, @Nullable String emoji) {
|
||||
emojiText.setText(emoji);
|
||||
glideRequests.load(stickerGlideModel)
|
||||
requestManager.load(stickerGlideModel)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.fitCenter()
|
||||
.into(image);
|
||||
|
||||
@@ -9,10 +9,11 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.RequestManager;
|
||||
|
||||
import org.signal.libsignal.protocol.util.Pair;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.keyboard.sticker.KeyboardStickerListAdapter;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
@@ -26,13 +27,13 @@ public class StickerRolloverTouchListener implements RecyclerView.OnItemTouchLis
|
||||
private boolean hoverMode;
|
||||
|
||||
public StickerRolloverTouchListener(@NonNull Context context,
|
||||
@NonNull GlideRequests glideRequests,
|
||||
@NonNull RequestManager requestManager,
|
||||
@NonNull RolloverEventListener eventListener,
|
||||
@NonNull RolloverStickerRetriever stickerRetriever)
|
||||
{
|
||||
this.eventListener = eventListener;
|
||||
this.stickerRetriever = stickerRetriever;
|
||||
this.popup = new StickerPreviewPopup(context, glideRequests);
|
||||
this.popup = new StickerPreviewPopup(context, requestManager);
|
||||
this.currentView = new WeakReference<>(null);
|
||||
|
||||
popup.setAnimationStyle(R.style.StickerPopupAnimation);
|
||||
|
||||
Reference in New Issue
Block a user