Skip to content

Commit f7ce2ee

Browse files
convert HighlightModel usages (as highlights) to Story
1 parent dbf0c66 commit f7ce2ee

File tree

14 files changed

+48
-52
lines changed

14 files changed

+48
-52
lines changed

app/src/main/java/awais/instagrabber/adapters/HighlightsAdapter.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@
99

1010
import awais.instagrabber.adapters.viewholder.HighlightViewHolder;
1111
import awais.instagrabber.databinding.ItemHighlightBinding;
12-
import awais.instagrabber.models.HighlightModel;
12+
import awais.instagrabber.repositories.responses.stories.Story;
1313

14-
public final class HighlightsAdapter extends ListAdapter<HighlightModel, HighlightViewHolder> {
14+
public final class HighlightsAdapter extends ListAdapter<Story, HighlightViewHolder> {
1515

1616
private final OnHighlightClickListener clickListener;
1717

18-
private static final DiffUtil.ItemCallback<HighlightModel> diffCallback = new DiffUtil.ItemCallback<HighlightModel>() {
18+
private static final DiffUtil.ItemCallback<Story> diffCallback = new DiffUtil.ItemCallback<Story>() {
1919
@Override
20-
public boolean areItemsTheSame(@NonNull final HighlightModel oldItem, @NonNull final HighlightModel newItem) {
20+
public boolean areItemsTheSame(@NonNull final Story oldItem, @NonNull final Story newItem) {
2121
return oldItem.getId().equals(newItem.getId());
2222
}
2323

2424
@Override
25-
public boolean areContentsTheSame(@NonNull final HighlightModel oldItem, @NonNull final HighlightModel newItem) {
25+
public boolean areContentsTheSame(@NonNull final Story oldItem, @NonNull final Story newItem) {
2626
return oldItem.getId().equals(newItem.getId());
2727
}
2828
};
@@ -42,14 +42,14 @@ public HighlightViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, f
4242

4343
@Override
4444
public void onBindViewHolder(@NonNull final HighlightViewHolder holder, final int position) {
45-
final HighlightModel highlightModel = getItem(position);
45+
final Story highlightModel = getItem(position);
4646
if (clickListener != null) {
4747
holder.itemView.setOnClickListener(v -> clickListener.onHighlightClick(highlightModel, position));
4848
}
4949
holder.bind(highlightModel);
5050
}
5151

5252
public interface OnHighlightClickListener {
53-
void onHighlightClick(final HighlightModel model, final int position);
53+
void onHighlightClick(final Story model, final int position);
5454
}
5555
}

app/src/main/java/awais/instagrabber/adapters/viewholder/HighlightViewHolder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import androidx.recyclerview.widget.RecyclerView;
44

55
import awais.instagrabber.databinding.ItemHighlightBinding;
6-
import awais.instagrabber.models.HighlightModel;
6+
import awais.instagrabber.repositories.responses.stories.Story;
77

88
public final class HighlightViewHolder extends RecyclerView.ViewHolder {
99

@@ -14,10 +14,10 @@ public HighlightViewHolder(final ItemHighlightBinding binding) {
1414
this.binding = binding;
1515
}
1616

17-
public void bind(final HighlightModel model) {
17+
public void bind(final Story model) {
1818
if (model == null) return;
1919
binding.title.setText(model.getTitle());
20-
binding.icon.setImageURI(model.getThumbnailUrl());
20+
binding.icon.setImageURI(model.getCoverMedia().getCroppedImageVersion().getUrl());
2121
// binding.getRoot().setOnClickListener(v -> {
2222
// if (listener == null) return;
2323
// listener.onFeedStoryClick(model, position);

app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -736,12 +736,12 @@ private void resetView() {
736736
switch (type) {
737737
case HIGHLIGHT: {
738738
final HighlightsViewModel highlightsViewModel = (HighlightsViewModel) viewModel;
739-
final List<HighlightModel> models = highlightsViewModel.getList().getValue();
739+
final List<Story> models = highlightsViewModel.getList().getValue();
740740
if (models == null || models.isEmpty() || currentFeedStoryIndex >= models.size() || currentFeedStoryIndex < 0) {
741741
Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
742742
return;
743743
}
744-
final HighlightModel model = models.get(currentFeedStoryIndex);
744+
final Story model = models.get(currentFeedStoryIndex);
745745
currentStoryMediaId = model.getId();
746746
fetchOptions = StoryViewerOptions.forHighlight(model.getId());
747747
highlightTitle = model.getTitle();

app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
import awais.instagrabber.fragments.UserSearchFragmentDirections;
7474
import awais.instagrabber.managers.DirectMessagesManager;
7575
import awais.instagrabber.managers.InboxManager;
76-
import awais.instagrabber.models.HighlightModel;
7776
import awais.instagrabber.models.PostsLayoutPreferences;
7877
import awais.instagrabber.models.enums.FavoriteType;
7978
import awais.instagrabber.models.enums.PostItemType;
@@ -84,6 +83,7 @@
8483
import awais.instagrabber.repositories.responses.User;
8584
import awais.instagrabber.repositories.responses.UserProfileContextLink;
8685
import awais.instagrabber.repositories.responses.directmessages.RankedRecipient;
86+
import awais.instagrabber.repositories.responses.stories.Story;
8787
import awais.instagrabber.utils.AppExecutors;
8888
import awais.instagrabber.utils.Constants;
8989
import awais.instagrabber.utils.CookieUtils;
@@ -1121,7 +1121,7 @@ private void fetchStoryAndHighlights(final long profileId) {
11211121
if (highlightModels != null) {
11221122
profileDetailsBinding.highlightsList.setVisibility(View.VISIBLE);
11231123
//noinspection unchecked
1124-
highlightsViewModel.getList().postValue((List<HighlightModel>) highlightModels);
1124+
highlightsViewModel.getList().postValue((List<Story>) highlightModels);
11251125
} else {
11261126
profileDetailsBinding.highlightsList.setVisibility(View.GONE);
11271127
}

app/src/main/java/awais/instagrabber/repositories/StoriesService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interface StoriesService {
1313
suspend fun getFeedStories(): ReelsTrayResponse
1414

1515
@GET("/api/v1/highlights/{uid}/highlights_tray/")
16-
suspend fun fetchHighlights(@Path("uid") uid: Long): String
16+
suspend fun fetchHighlights(@Path("uid") uid: Long): ReelsTrayResponse
1717

1818
@GET("/api/v1/archive/reel/day_shells/")
1919
suspend fun fetchArchive(@QueryMap queryParams: Map<String, String>): String

app/src/main/java/awais/instagrabber/repositories/responses/HdProfilePicUrlInfo.kt

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package awais.instagrabber.repositories.responses
2+
3+
import java.io.Serializable
4+
5+
data class ImageUrl(val url: String, private val width: Int, private val height: Int) : Serializable

app/src/main/java/awais/instagrabber/repositories/responses/User.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ data class User @JvmOverloads constructor(
2727
val externalUrl: String? = null,
2828
val usertagsCount: Long = 0,
2929
val publicEmail: String? = null,
30-
val hdProfilePicUrlInfo: HdProfilePicUrlInfo? = null,
30+
val hdProfilePicUrlInfo: ImageUrl? = null,
3131
val profileContext: String? = null, // "also followed by" your friends
3232
val profileContextLinksWithUserIds: List<UserProfileContextLink>? = null, // ^
3333
val socialContext: String? = null, // AYML
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package awais.instagrabber.repositories.responses.stories
2+
3+
import awais.instagrabber.repositories.responses.ImageUrl
4+
5+
data class CoverMedia(val croppedImageVersion: ImageUrl)

app/src/main/java/awais/instagrabber/repositories/responses/stories/Story.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package awais.instagrabber.repositories.responses.stories
22

33
import java.io.Serializable
4-
import awais.instagrabber.repositories.responses.Media
54
import awais.instagrabber.repositories.responses.User
65
import awais.instagrabber.utils.TextUtils
76

87
data class Story(
8+
// universal
99
val id: String?,
1010
val latestReelMedia: Long?, // = timestamp
1111
var seen: Long?,
1212
val user: User?,
13+
// for stories
14+
val mediaCount: Int?,
1315
val muted: Boolean?,
1416
val hasBestiesMedia: Boolean?,
15-
val mediaCount: Int?,
1617
val items: List<StoryMedia>?, // may be null
18+
// for highlights
19+
val coverMedia: CoverMedia?,
20+
val title: String?,
21+
// invented fields
1722
val broadcast: Broadcast? // does not naturally occur
1823
) : Serializable {
1924
val dateTime: String

0 commit comments

Comments
 (0)