Ammar Githam
4 years ago
13 changed files with 250 additions and 73 deletions
-
47app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectMessageMediaShareViewHolder.java
-
25app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectMessageMediaViewHolder.java
-
23app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectMessageRavenMediaViewHolder.java
-
19app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectMessageReelShareViewHolder.java
-
19app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectMessageStoryShareViewHolder.java
-
9app/src/main/java/awais/instagrabber/asyncs/DiscoverFetcher.java
-
45app/src/main/java/awais/instagrabber/models/direct_messages/DirectItemModel.java
-
12app/src/main/java/awais/instagrabber/utils/NumberUtils.java
-
107app/src/main/java/awais/instagrabber/utils/ResponseBodyUtils.java
-
6app/src/main/res/layout/fragment_direct_messages_thread.xml
-
5app/src/main/res/layout/layout_dm_animated_media.xml
-
4app/src/main/res/layout/layout_dm_media.xml
-
2app/src/main/res/navigation/direct_messages_nav_graph.xml
@ -1,32 +1,53 @@ |
|||||
package awais.instagrabber.adapters.viewholder.directmessages; |
package awais.instagrabber.adapters.viewholder.directmessages; |
||||
|
|
||||
import android.view.View; |
import android.view.View; |
||||
|
import android.view.ViewGroup; |
||||
|
|
||||
import androidx.annotation.NonNull; |
import androidx.annotation.NonNull; |
||||
|
import androidx.core.util.Pair; |
||||
|
|
||||
|
import awais.instagrabber.R; |
||||
import awais.instagrabber.databinding.LayoutDmBaseBinding; |
import awais.instagrabber.databinding.LayoutDmBaseBinding; |
||||
import awais.instagrabber.databinding.LayoutDmMediaBinding; |
import awais.instagrabber.databinding.LayoutDmMediaBinding; |
||||
import awais.instagrabber.models.direct_messages.DirectItemModel; |
import awais.instagrabber.models.direct_messages.DirectItemModel; |
||||
import awais.instagrabber.models.enums.MediaItemType; |
import awais.instagrabber.models.enums.MediaItemType; |
||||
|
import awais.instagrabber.utils.NumberUtils; |
||||
|
import awais.instagrabber.utils.Utils; |
||||
|
|
||||
public class DirectMessageMediaViewHolder extends DirectMessageItemViewHolder { |
public class DirectMessageMediaViewHolder extends DirectMessageItemViewHolder { |
||||
|
|
||||
private final LayoutDmMediaBinding binding; |
private final LayoutDmMediaBinding binding; |
||||
|
private final int maxHeight; |
||||
|
private final int maxWidth; |
||||
|
|
||||
public DirectMessageMediaViewHolder(@NonNull final LayoutDmBaseBinding baseBinding, |
public DirectMessageMediaViewHolder(@NonNull final LayoutDmBaseBinding baseBinding, |
||||
@NonNull final LayoutDmMediaBinding binding, |
@NonNull final LayoutDmMediaBinding binding, |
||||
final View.OnClickListener onClickListener) { |
final View.OnClickListener onClickListener) { |
||||
super(baseBinding, onClickListener); |
super(baseBinding, onClickListener); |
||||
this.binding = binding; |
this.binding = binding; |
||||
|
maxHeight = itemView.getResources().getDimensionPixelSize(R.dimen.dm_media_img_max_height); |
||||
|
maxWidth = (int) (Utils.displayMetrics.widthPixels * 0.8); |
||||
setItemView(binding.getRoot()); |
setItemView(binding.getRoot()); |
||||
} |
} |
||||
|
|
||||
@Override |
@Override |
||||
public void bindItem(final DirectItemModel directItemModel) { |
public void bindItem(final DirectItemModel directItemModel) { |
||||
final DirectItemModel.DirectItemMediaModel mediaModel = directItemModel.getMediaModel(); |
final DirectItemModel.DirectItemMediaModel mediaModel = directItemModel.getMediaModel(); |
||||
|
final Pair<Integer, Integer> widthHeight = NumberUtils.calculateWidthHeight( |
||||
|
mediaModel.getHeight(), |
||||
|
mediaModel.getWidth(), |
||||
|
maxHeight, |
||||
|
maxWidth |
||||
|
); |
||||
|
final ViewGroup.LayoutParams layoutParams = binding.ivMediaPreview.getLayoutParams(); |
||||
|
layoutParams.width = widthHeight.first != null ? widthHeight.first : 0; |
||||
|
layoutParams.height = widthHeight.second != null ? widthHeight.second : 0; |
||||
|
binding.ivMediaPreview.requestLayout(); |
||||
|
binding.ivMediaPreview.requestLayout(); |
||||
binding.ivMediaPreview.setImageURI(mediaModel.getThumbUrl()); |
binding.ivMediaPreview.setImageURI(mediaModel.getThumbUrl()); |
||||
final MediaItemType modelMediaType = mediaModel.getMediaType(); |
final MediaItemType modelMediaType = mediaModel.getMediaType(); |
||||
binding.typeIcon.setVisibility(modelMediaType == MediaItemType.MEDIA_TYPE_VIDEO |
|
||||
|| modelMediaType == MediaItemType.MEDIA_TYPE_SLIDER ? View.VISIBLE : View.GONE); |
|
||||
|
binding.typeIcon.setVisibility(modelMediaType == MediaItemType.MEDIA_TYPE_VIDEO || modelMediaType == MediaItemType.MEDIA_TYPE_SLIDER |
||||
|
? View.VISIBLE |
||||
|
: View.GONE); |
||||
} |
} |
||||
} |
} |
@ -1,6 +1,5 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
<?xml version="1.0" encoding="utf-8"?> |
||||
<com.facebook.drawee.view.SimpleDraweeView xmlns:android="http://schemas.android.com/apk/res/android" |
<com.facebook.drawee.view.SimpleDraweeView xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:id="@+id/ivAnimatedMessage" |
android:id="@+id/ivAnimatedMessage" |
||||
android:layout_width="wrap_content" |
|
||||
android:layout_height="wrap_content" |
|
||||
android:maxHeight="@dimen/dm_media_img_max_height" /> |
|
||||
|
android:layout_width="match_parent" |
||||
|
android:layout_height="@dimen/dm_media_img_max_height" /> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue