Browse Source
Merge remote-tracking branch 'upstream/master'
renovate/org.robolectric-robolectric-4.x
Merge remote-tracking branch 'upstream/master'
renovate/org.robolectric-robolectric-4.x
Ammar Githam
4 years ago
25 changed files with 181 additions and 398 deletions
-
1.gitignore
-
2app/src/main/java/awais/instagrabber/adapters/DirectItemsAdapter.java
-
9app/src/main/java/awais/instagrabber/adapters/SavedCollectionsAdapter.java
-
10app/src/main/java/awais/instagrabber/adapters/viewholder/TopicClusterViewHolder.java
-
26app/src/main/java/awais/instagrabber/fragments/CollectionPostsFragment.java
-
5app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java
-
4app/src/main/java/awais/instagrabber/fragments/SavedCollectionsFragment.java
-
3app/src/main/java/awais/instagrabber/managers/ThreadManager.kt
-
2app/src/main/java/awais/instagrabber/models/Comment.kt
-
109app/src/main/java/awais/instagrabber/models/enums/DirectItemType.java
-
85app/src/main/java/awais/instagrabber/models/enums/DirectItemType.kt
-
6app/src/main/java/awais/instagrabber/models/enums/RavenMediaViewMode.kt
-
5app/src/main/java/awais/instagrabber/models/enums/SuggestionType.kt
-
29app/src/main/java/awais/instagrabber/repositories/responses/notification/Notification.java
-
11app/src/main/java/awais/instagrabber/repositories/responses/notification/Notification.kt
-
55app/src/main/java/awais/instagrabber/repositories/responses/notification/NotificationCounts.java
-
9app/src/main/java/awais/instagrabber/repositories/responses/notification/NotificationCounts.kt
-
19app/src/main/java/awais/instagrabber/repositories/responses/notification/NotificationImage.java
-
3app/src/main/java/awais/instagrabber/repositories/responses/notification/NotificationImage.kt
-
50app/src/main/java/awais/instagrabber/repositories/responses/saved/CollectionsListResponse.java
-
12app/src/main/java/awais/instagrabber/repositories/responses/saved/CollectionsListResponse.kt
-
54app/src/main/java/awais/instagrabber/repositories/responses/saved/SavedCollection.java
-
12app/src/main/java/awais/instagrabber/repositories/responses/saved/SavedCollection.kt
-
46app/src/main/java/awais/instagrabber/repositories/responses/search/SearchResponse.java
-
10app/src/main/java/awais/instagrabber/repositories/responses/search/SearchResponse.kt
@ -1,109 +0,0 @@ |
|||||
package awais.instagrabber.models.enums; |
|
||||
|
|
||||
import com.google.gson.annotations.SerializedName; |
|
||||
|
|
||||
import java.io.Serializable; |
|
||||
import java.util.HashMap; |
|
||||
import java.util.Map; |
|
||||
|
|
||||
public enum DirectItemType implements Serializable { |
|
||||
UNKNOWN(0), |
|
||||
@SerializedName("text") |
|
||||
TEXT(1), |
|
||||
@SerializedName("like") |
|
||||
LIKE(2), |
|
||||
@SerializedName("link") |
|
||||
LINK(3), |
|
||||
@SerializedName("media") |
|
||||
MEDIA(4), |
|
||||
@SerializedName("raven_media") |
|
||||
RAVEN_MEDIA(5), |
|
||||
@SerializedName("profile") |
|
||||
PROFILE(6), |
|
||||
@SerializedName("video_call_event") |
|
||||
VIDEO_CALL_EVENT(7), |
|
||||
@SerializedName("animated_media") |
|
||||
ANIMATED_MEDIA(8), |
|
||||
@SerializedName("voice_media") |
|
||||
VOICE_MEDIA(9), |
|
||||
@SerializedName("media_share") |
|
||||
MEDIA_SHARE(10), |
|
||||
@SerializedName("reel_share") |
|
||||
REEL_SHARE(11), |
|
||||
@SerializedName("action_log") |
|
||||
ACTION_LOG(12), |
|
||||
@SerializedName("placeholder") |
|
||||
PLACEHOLDER(13), |
|
||||
@SerializedName("story_share") |
|
||||
STORY_SHARE(14), |
|
||||
@SerializedName("clip") |
|
||||
CLIP(15), // media_share but reel |
|
||||
@SerializedName("felix_share") |
|
||||
FELIX_SHARE(16), // media_share but igtv |
|
||||
@SerializedName("location") |
|
||||
LOCATION(17), |
|
||||
@SerializedName("xma") |
|
||||
XMA(18); // self avatar stickers |
|
||||
|
|
||||
private final int id; |
|
||||
private static final Map<Integer, DirectItemType> map = new HashMap<>(); |
|
||||
|
|
||||
static { |
|
||||
for (DirectItemType type : DirectItemType.values()) { |
|
||||
map.put(type.id, type); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
DirectItemType(final int id) { |
|
||||
this.id = id; |
|
||||
} |
|
||||
|
|
||||
public int getId() { |
|
||||
return id; |
|
||||
} |
|
||||
|
|
||||
public static DirectItemType valueOf(final int id) { |
|
||||
if (!map.containsKey(id)) return DirectItemType.UNKNOWN; |
|
||||
return map.get(id); |
|
||||
} |
|
||||
|
|
||||
public String getName() { |
|
||||
switch (this) { |
|
||||
case TEXT: |
|
||||
return "text"; |
|
||||
case LIKE: |
|
||||
return "like"; |
|
||||
case LINK: |
|
||||
return "link"; |
|
||||
case MEDIA: |
|
||||
return "media"; |
|
||||
case RAVEN_MEDIA: |
|
||||
return "raven_media"; |
|
||||
case PROFILE: |
|
||||
return "profile"; |
|
||||
case VIDEO_CALL_EVENT: |
|
||||
return "video_call_event"; |
|
||||
case ANIMATED_MEDIA: |
|
||||
return "animated_media"; |
|
||||
case VOICE_MEDIA: |
|
||||
return "voice_media"; |
|
||||
case MEDIA_SHARE: |
|
||||
return "media_share"; |
|
||||
case REEL_SHARE: |
|
||||
return "reel_share"; |
|
||||
case ACTION_LOG: |
|
||||
return "action_log"; |
|
||||
case PLACEHOLDER: |
|
||||
return "placeholder"; |
|
||||
case STORY_SHARE: |
|
||||
return "story_share"; |
|
||||
case CLIP: |
|
||||
return "clip"; |
|
||||
case FELIX_SHARE: |
|
||||
return "felix_share"; |
|
||||
case LOCATION: |
|
||||
return "location"; |
|
||||
} |
|
||||
return null; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,85 @@ |
|||||
|
package awais.instagrabber.models.enums |
||||
|
|
||||
|
import com.google.gson.annotations.SerializedName |
||||
|
|
||||
|
import java.io.Serializable |
||||
|
import java.util.* |
||||
|
|
||||
|
enum class DirectItemType(val id: Int) : Serializable { |
||||
|
UNKNOWN(0), |
||||
|
@SerializedName("text") |
||||
|
TEXT(1), |
||||
|
@SerializedName("like") |
||||
|
LIKE(2), |
||||
|
@SerializedName("link") |
||||
|
LINK(3), |
||||
|
@SerializedName("media") |
||||
|
MEDIA(4), |
||||
|
@SerializedName("raven_media") |
||||
|
RAVEN_MEDIA(5), |
||||
|
@SerializedName("profile") |
||||
|
PROFILE(6), |
||||
|
@SerializedName("video_call_event") |
||||
|
VIDEO_CALL_EVENT(7), |
||||
|
@SerializedName("animated_media") |
||||
|
ANIMATED_MEDIA(8), |
||||
|
@SerializedName("voice_media") |
||||
|
VOICE_MEDIA(9), |
||||
|
@SerializedName("media_share") |
||||
|
MEDIA_SHARE(10), |
||||
|
@SerializedName("reel_share") |
||||
|
REEL_SHARE(11), |
||||
|
@SerializedName("action_log") |
||||
|
ACTION_LOG(12), |
||||
|
@SerializedName("placeholder") |
||||
|
PLACEHOLDER(13), |
||||
|
@SerializedName("story_share") |
||||
|
STORY_SHARE(14), |
||||
|
@SerializedName("clip") |
||||
|
CLIP(15), // media_share but reel |
||||
|
@SerializedName("felix_share") |
||||
|
FELIX_SHARE(16), // media_share but igtv |
||||
|
@SerializedName("location") |
||||
|
LOCATION(17), |
||||
|
@SerializedName("xma") |
||||
|
XMA(18); // self avatar stickers |
||||
|
|
||||
|
companion object { |
||||
|
private val map: MutableMap<Int, DirectItemType> = mutableMapOf() |
||||
|
|
||||
|
@JvmStatic |
||||
|
fun getId(id: Int): DirectItemType? { |
||||
|
return map[id] |
||||
|
} |
||||
|
|
||||
|
@JvmStatic |
||||
|
fun getName(directItemType: DirectItemType): String? { |
||||
|
when (directItemType) { |
||||
|
TEXT -> return "text" |
||||
|
LIKE -> return "like" |
||||
|
LINK -> return "link" |
||||
|
MEDIA -> return "media" |
||||
|
RAVEN_MEDIA -> return "raven_media" |
||||
|
PROFILE -> return "profile" |
||||
|
VIDEO_CALL_EVENT -> return "video_call_event" |
||||
|
ANIMATED_MEDIA -> return "animated_media" |
||||
|
VOICE_MEDIA -> return "voice_media" |
||||
|
MEDIA_SHARE -> return "media_share" |
||||
|
REEL_SHARE -> return "reel_share" |
||||
|
ACTION_LOG -> return "action_log" |
||||
|
PLACEHOLDER -> return "placeholder" |
||||
|
STORY_SHARE -> return "story_share" |
||||
|
CLIP -> return "clip" |
||||
|
FELIX_SHARE -> return "felix_share" |
||||
|
LOCATION -> return "location" |
||||
|
} |
||||
|
return null |
||||
|
} |
||||
|
|
||||
|
init { |
||||
|
for (type in DirectItemType.values()) { |
||||
|
map[type.id] = type |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -1,8 +1,8 @@ |
|||||
package awais.instagrabber.models.enums; |
|
||||
|
package awais.instagrabber.models.enums |
||||
|
|
||||
import com.google.gson.annotations.SerializedName; |
|
||||
|
import com.google.gson.annotations.SerializedName |
||||
|
|
||||
public enum RavenMediaViewMode { |
|
||||
|
enum class RavenMediaViewMode { |
||||
@SerializedName("permanent") |
@SerializedName("permanent") |
||||
PERMANENT, |
PERMANENT, |
||||
@SerializedName("replayable") |
@SerializedName("replayable") |
@ -1,5 +0,0 @@ |
|||||
package awais.instagrabber.models.enums |
|
||||
|
|
||||
enum class SuggestionType { |
|
||||
TYPE_USER, TYPE_HASHTAG, TYPE_LOCATION |
|
||||
} |
|
@ -1,29 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.notification; |
|
||||
|
|
||||
import awais.instagrabber.models.enums.NotificationType; |
|
||||
|
|
||||
public class Notification { |
|
||||
private final NotificationArgs args; |
|
||||
private final int storyType; |
|
||||
private final String pk; |
|
||||
|
|
||||
public Notification(final NotificationArgs args, |
|
||||
final int storyType, |
|
||||
final String pk) { |
|
||||
this.args = args; |
|
||||
this.storyType = storyType; |
|
||||
this.pk = pk; |
|
||||
} |
|
||||
|
|
||||
public NotificationArgs getArgs() { |
|
||||
return args; |
|
||||
} |
|
||||
|
|
||||
public NotificationType getType() { |
|
||||
return NotificationType.valueOfType(storyType); |
|
||||
} |
|
||||
|
|
||||
public String getPk() { |
|
||||
return pk; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,11 @@ |
|||||
|
package awais.instagrabber.repositories.responses.notification |
||||
|
|
||||
|
import awais.instagrabber.models.enums.NotificationType |
||||
|
import awais.instagrabber.models.enums.NotificationType.Companion.valueOfType |
||||
|
|
||||
|
class Notification(val args: NotificationArgs, |
||||
|
private val storyType: Int, |
||||
|
val pk: String) { |
||||
|
val type: NotificationType? |
||||
|
get() = valueOfType(storyType) |
||||
|
} |
@ -1,55 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.notification; |
|
||||
|
|
||||
public class NotificationCounts { |
|
||||
private final int commentLikes; |
|
||||
private final int usertags; |
|
||||
private final int likes; |
|
||||
private final int comments; |
|
||||
private final int relationships; |
|
||||
private final int photosOfYou; |
|
||||
private final int requests; |
|
||||
|
|
||||
public NotificationCounts(final int commentLikes, |
|
||||
final int usertags, |
|
||||
final int likes, |
|
||||
final int comments, |
|
||||
final int relationships, |
|
||||
final int photosOfYou, |
|
||||
final int requests) { |
|
||||
this.commentLikes = commentLikes; |
|
||||
this.usertags = usertags; |
|
||||
this.likes = likes; |
|
||||
this.comments = comments; |
|
||||
this.relationships = relationships; |
|
||||
this.photosOfYou = photosOfYou; |
|
||||
this.requests = requests; |
|
||||
} |
|
||||
|
|
||||
public int getRelationshipsCount() { |
|
||||
return relationships; |
|
||||
} |
|
||||
|
|
||||
public int getUserTagsCount() { |
|
||||
return usertags; |
|
||||
} |
|
||||
|
|
||||
public int getCommentsCount() { |
|
||||
return comments; |
|
||||
} |
|
||||
|
|
||||
public int getCommentLikesCount() { |
|
||||
return commentLikes; |
|
||||
} |
|
||||
|
|
||||
public int getLikesCount() { |
|
||||
return likes; |
|
||||
} |
|
||||
|
|
||||
public int getPOYCount() { |
|
||||
return photosOfYou; |
|
||||
} |
|
||||
|
|
||||
public int getRequestsCount() { |
|
||||
return requests; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,9 @@ |
|||||
|
package awais.instagrabber.repositories.responses.notification |
||||
|
|
||||
|
class NotificationCounts(val commentLikesCount: Int, |
||||
|
val userTagsCount: Int, |
||||
|
val likesCount: Int, |
||||
|
val commentsCount: Int, |
||||
|
val relationshipsCount: Int, |
||||
|
val pOYCount: Int, |
||||
|
val requestsCount: Int) |
@ -1,19 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.notification; |
|
||||
|
|
||||
public class NotificationImage { |
|
||||
private final String id; |
|
||||
private final String image; |
|
||||
|
|
||||
public NotificationImage(final String id, final String image) { |
|
||||
this.id = id; |
|
||||
this.image = image; |
|
||||
} |
|
||||
|
|
||||
public String getId() { |
|
||||
return id; |
|
||||
} |
|
||||
|
|
||||
public String getImage() { |
|
||||
return image; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,3 @@ |
|||||
|
package awais.instagrabber.repositories.responses.notification |
||||
|
|
||||
|
class NotificationImage(val id: String, val image: String) |
@ -1,50 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.saved; |
|
||||
|
|
||||
import java.util.List; |
|
||||
|
|
||||
public class CollectionsListResponse { |
|
||||
private final boolean moreAvailable; |
|
||||
private final String nextMaxId; |
|
||||
private final String maxId; |
|
||||
private final String status; |
|
||||
// private final int numResults; |
|
||||
private final List<SavedCollection> items; |
|
||||
|
|
||||
public CollectionsListResponse(final boolean moreAvailable, |
|
||||
final String nextMaxId, |
|
||||
final String maxId, |
|
||||
final String status, |
|
||||
// final int numResults, |
|
||||
final List<SavedCollection> items) { |
|
||||
this.moreAvailable = moreAvailable; |
|
||||
this.nextMaxId = nextMaxId; |
|
||||
this.maxId = maxId; |
|
||||
this.status = status; |
|
||||
// this.numResults = numResults; |
|
||||
this.items = items; |
|
||||
} |
|
||||
|
|
||||
public boolean isMoreAvailable() { |
|
||||
return moreAvailable; |
|
||||
} |
|
||||
|
|
||||
public String getNextMaxId() { |
|
||||
return nextMaxId; |
|
||||
} |
|
||||
|
|
||||
public String getMaxId() { |
|
||||
return maxId; |
|
||||
} |
|
||||
|
|
||||
public String getStatus() { |
|
||||
return status; |
|
||||
} |
|
||||
|
|
||||
// public int getNumResults() { |
|
||||
// return numResults; |
|
||||
// } |
|
||||
|
|
||||
public List<SavedCollection> getItems() { |
|
||||
return items; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,12 @@ |
|||||
|
package awais.instagrabber.repositories.responses.saved |
||||
|
|
||||
|
class CollectionsListResponse // this.numResults = numResults; |
||||
|
(val isMoreAvailable: Boolean, |
||||
|
val nextMaxId: String, |
||||
|
val maxId: String, |
||||
|
val status: String, // final int numResults, |
||||
|
// public int getNumResults() { |
||||
|
// return numResults; |
||||
|
// } |
||||
|
// private final int numResults; |
||||
|
val items: List<SavedCollection>) |
@ -1,54 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.saved; |
|
||||
|
|
||||
import java.io.Serializable; |
|
||||
import java.util.List; |
|
||||
|
|
||||
import awais.instagrabber.repositories.responses.Media; |
|
||||
|
|
||||
public class SavedCollection implements Serializable { |
|
||||
private final String collectionId; |
|
||||
private final String collectionName; |
|
||||
private final String collectionType; |
|
||||
private final int collectionMediacount; |
|
||||
private final Media coverMedia; |
|
||||
private final List<Media> coverMediaList; |
|
||||
|
|
||||
public SavedCollection(final String collectionId, |
|
||||
final String collectionName, |
|
||||
final String collectionType, |
|
||||
final int collectionMediacount, |
|
||||
final Media coverMedia, |
|
||||
final List<Media> coverMediaList) { |
|
||||
this.collectionId = collectionId; |
|
||||
this.collectionName = collectionName; |
|
||||
this.collectionType = collectionType; |
|
||||
this.collectionMediacount = collectionMediacount; |
|
||||
this.coverMedia = coverMedia; |
|
||||
this.coverMediaList = coverMediaList; |
|
||||
} |
|
||||
|
|
||||
public String getId() { |
|
||||
return collectionId; |
|
||||
} |
|
||||
|
|
||||
public String getTitle() { |
|
||||
return collectionName; |
|
||||
} |
|
||||
|
|
||||
public String getType() { |
|
||||
return collectionType; |
|
||||
} |
|
||||
|
|
||||
public int getMediaCount() { |
|
||||
return collectionMediacount; |
|
||||
} |
|
||||
|
|
||||
// check the list first, then the single |
|
||||
// i have no idea what condition is required |
|
||||
|
|
||||
public Media getCoverMedia() { return coverMedia; } |
|
||||
|
|
||||
public List<Media> getCoverMedias() { |
|
||||
return coverMediaList; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,12 @@ |
|||||
|
package awais.instagrabber.repositories.responses.saved |
||||
|
|
||||
|
import awais.instagrabber.repositories.responses.Media |
||||
|
import java.io.Serializable |
||||
|
|
||||
|
class SavedCollection(val collectionId: String, |
||||
|
val collectionName: String, |
||||
|
val collectionType: String, |
||||
|
val collectionMediaCount: Int, |
||||
|
// coverMedia or coverMediaList: only one is defined |
||||
|
val coverMedia: Media, |
||||
|
val coverMediaList: List<Media>) : Serializable |
@ -1,46 +0,0 @@ |
|||||
package awais.instagrabber.repositories.responses.search; |
|
||||
|
|
||||
import java.util.List; |
|
||||
|
|
||||
public class SearchResponse { |
|
||||
// app |
|
||||
private final List<SearchItem> list; |
|
||||
// browser |
|
||||
private final List<SearchItem> users; |
|
||||
private final List<SearchItem> places; |
|
||||
private final List<SearchItem> hashtags; |
|
||||
// universal |
|
||||
private final String status; |
|
||||
|
|
||||
public SearchResponse(final List<SearchItem> list, |
|
||||
final List<SearchItem> users, |
|
||||
final List<SearchItem> places, |
|
||||
final List<SearchItem> hashtags, |
|
||||
final String status) { |
|
||||
this.list = list; |
|
||||
this.users = users; |
|
||||
this.places = places; |
|
||||
this.hashtags = hashtags; |
|
||||
this.status = status; |
|
||||
} |
|
||||
|
|
||||
public List<SearchItem> getList() { |
|
||||
return list; |
|
||||
} |
|
||||
|
|
||||
public List<SearchItem> getUsers() { |
|
||||
return users; |
|
||||
} |
|
||||
|
|
||||
public List<SearchItem> getPlaces() { |
|
||||
return places; |
|
||||
} |
|
||||
|
|
||||
public List<SearchItem> getHashtags() { |
|
||||
return hashtags; |
|
||||
} |
|
||||
|
|
||||
public String getStatus() { |
|
||||
return status; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,10 @@ |
|||||
|
package awais.instagrabber.repositories.responses.search |
||||
|
|
||||
|
class SearchResponse(// app |
||||
|
val list: List<SearchItem>, |
||||
|
// browser |
||||
|
val users: List<SearchItem>, |
||||
|
val places: List<SearchItem>, |
||||
|
val hashtags: List<SearchItem>, |
||||
|
// universal |
||||
|
val status: String) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue