mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 03:25:34 +00:00 
			
		
		
		
	make archives usable and also some marginal improvements
This commit is contained in:
		
							parent
							
								
									0afe482b86
								
							
						
					
					
						commit
						442903eaf9
					
				| @ -79,7 +79,7 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr | ||||
|         public void onHighlightClick(final HighlightModel model, final int position) { | ||||
|             if (model == null) return; | ||||
|             final NavDirections action = StoryListViewerFragmentDirections | ||||
|                     .actionStoryListFragmentToStoryViewerFragment(StoryViewerOptions.forStoryArchive(position)); | ||||
|                     .actionStoryListFragmentToStoryViewerFragment(StoryViewerOptions.forStoryArchive(model.getId())); | ||||
|             NavHostFragment.findNavController(StoryListViewerFragment.this).navigate(action); | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -739,7 +739,7 @@ public class StoryViewerFragment extends Fragment { | ||||
|                 final HighlightModel model = models.get(currentFeedStoryIndex); | ||||
|                 currentStoryMediaId = parseStoryMediaId(model.getId()); | ||||
|                 currentStoryUsername = model.getTitle(); | ||||
|                 fetchOptions = StoryViewerOptions.forUser(Long.parseLong(currentStoryMediaId), currentStoryUsername); | ||||
|                 fetchOptions = StoryViewerOptions.forStoryArchive(model.getId()); | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @ -57,8 +57,8 @@ public class StoryViewerOptions implements Serializable { | ||||
|         return new StoryViewerOptions(position, Type.FEED_STORY_POSITION); | ||||
|     } | ||||
| 
 | ||||
|     public static StoryViewerOptions forStoryArchive(final int position) { | ||||
|         return new StoryViewerOptions(position, Type.STORY_ARCHIVE); | ||||
|     public static StoryViewerOptions forStoryArchive(final String id) { | ||||
|         return new StoryViewerOptions(id, Type.STORY_ARCHIVE); | ||||
|     } | ||||
| 
 | ||||
|     public long getId() { | ||||
|  | ||||
| @ -962,8 +962,7 @@ public final class ResponseBodyUtils { | ||||
|     // } | ||||
| 
 | ||||
|     public static StoryModel parseStoryItem(final JSONObject data, | ||||
|                                             final boolean isLoc, | ||||
|                                             final boolean isHashtag, | ||||
|                                             final boolean isLocOrHashtag, | ||||
|                                             final String username) throws JSONException { | ||||
|         final boolean isVideo = data.has("video_duration"); | ||||
|         final StoryModel model = new StoryModel(data.getString("id"), | ||||
| @ -971,9 +970,7 @@ public final class ResponseBodyUtils { | ||||
|                                                     .getString("url"), null, | ||||
|                                                 isVideo ? MediaItemType.MEDIA_TYPE_VIDEO : MediaItemType.MEDIA_TYPE_IMAGE, | ||||
|                                                 data.optLong("taken_at", 0), | ||||
|                                                 (isLoc || isHashtag) | ||||
|                                                 ? data.getJSONObject("user").getString("username") | ||||
|                                                 : username, | ||||
|                                                 isLocOrHashtag ? data.getJSONObject("user").getString("username") : username, | ||||
|                                                 data.getJSONObject("user").getLong("pk"), | ||||
|                                                 data.optBoolean("can_reply")); | ||||
| 
 | ||||
|  | ||||
| @ -95,7 +95,7 @@ public class StoriesService extends BaseService { | ||||
|                 } | ||||
|                 try { | ||||
|                     final JSONObject itemJson = new JSONObject(body).getJSONArray("items").getJSONObject(0); | ||||
|                     callback.onSuccess(ResponseBodyUtils.parseStoryItem(itemJson, false, false, null)); | ||||
|                     callback.onSuccess(ResponseBodyUtils.parseStoryItem(itemJson, false, null)); | ||||
|                 } catch (JSONException e) { | ||||
|                     callback.onFailure(e); | ||||
|                 } | ||||
| @ -187,7 +187,7 @@ public class StoriesService extends BaseService { | ||||
|                     final boolean isBestie = node.optBoolean("has_besties_media", false); | ||||
|                     StoryModel firstStoryModel = null; | ||||
|                     if (itemJson != null) { | ||||
|                         firstStoryModel = ResponseBodyUtils.parseStoryItem(itemJson, false, false, null); | ||||
|                         firstStoryModel = ResponseBodyUtils.parseStoryItem(itemJson, false, null); | ||||
|                     } | ||||
|                     feedStoryModels.add(new FeedStoryModel(id, user, fullyRead, timestamp, firstStoryModel, mediaCount, false, isBestie)); | ||||
|                 } | ||||
| @ -364,9 +364,8 @@ public class StoriesService extends BaseService { | ||||
|                              final ServiceCallback<List<StoryModel>> callback) { | ||||
|         final String url = buildUrl(options); | ||||
|         final Call<String> userStoryCall = repository.getUserStory(url); | ||||
|         final boolean isLoc = options.getType() == StoryViewerOptions.Type.LOCATION; | ||||
|         final boolean isHashtag = options.getType() == StoryViewerOptions.Type.HASHTAG; | ||||
|         final boolean isHighlight = options.getType() == StoryViewerOptions.Type.HIGHLIGHT; | ||||
|         final boolean isLocOrHashtag = options.getType() == StoryViewerOptions.Type.LOCATION || options.getType() == StoryViewerOptions.Type.HASHTAG; | ||||
|         final boolean isHighlight = options.getType() == StoryViewerOptions.Type.HIGHLIGHT || options.getType() == StoryViewerOptions.Type.STORY_ARCHIVE; | ||||
|         userStoryCall.enqueue(new Callback<String>() { | ||||
|             @Override | ||||
|             public void onResponse(@NonNull final Call<String> call, @NonNull final Response<String> response) { | ||||
| @ -380,7 +379,7 @@ public class StoriesService extends BaseService { | ||||
|                     data = new JSONObject(body); | ||||
| 
 | ||||
|                     if (!isHighlight) { | ||||
|                         data = data.optJSONObject((isLoc || isHashtag) ? "story" : "reel"); | ||||
|                         data = data.optJSONObject((isLocOrHashtag) ? "story" : "reel"); | ||||
|                     } else { | ||||
|                         data = data.getJSONObject("reels").optJSONObject(options.getName()); | ||||
|                     } | ||||
| @ -388,8 +387,7 @@ public class StoriesService extends BaseService { | ||||
|                     String username = null; | ||||
|                     if (data != null | ||||
|                             // && localUsername == null | ||||
|                             && !isLoc | ||||
|                             && !isHashtag) { | ||||
|                             && !isLocOrHashtag) { | ||||
|                         username = data.getJSONObject("user").getString("username"); | ||||
|                     } | ||||
| 
 | ||||
| @ -397,12 +395,11 @@ public class StoriesService extends BaseService { | ||||
|                     if (data != null | ||||
|                             && (media = data.optJSONArray("items")) != null | ||||
|                             && media.length() > 0 && media.optJSONObject(0) != null) { | ||||
| 
 | ||||
|                         final int mediaLen = media.length(); | ||||
|                         final List<StoryModel> models = new ArrayList<>(); | ||||
|                         for (int i = 0; i < mediaLen; ++i) { | ||||
|                             data = media.getJSONObject(i); | ||||
|                             models.add(ResponseBodyUtils.parseStoryItem(data, isLoc, isHashtag, username)); | ||||
|                             models.add(ResponseBodyUtils.parseStoryItem(data, isLocOrHashtag, username)); | ||||
|                         } | ||||
|                         callback.onSuccess(models); | ||||
|                     } else { | ||||
| @ -543,6 +540,7 @@ public class StoriesService extends BaseService { | ||||
|                 id = String.valueOf(options.getId()); | ||||
|                 break; | ||||
|             case HIGHLIGHT: | ||||
|             case STORY_ARCHIVE: | ||||
|                 builder.append("feed/reels_media/?user_ids="); | ||||
|                 id = options.getName(); | ||||
|                 break; | ||||
| @ -550,15 +548,12 @@ public class StoriesService extends BaseService { | ||||
|                 break; | ||||
|             // case FEED_STORY_POSITION: | ||||
|             //     break; | ||||
|             // case STORY_ARCHIVE: | ||||
|             //     break; | ||||
|         } | ||||
|         if (id == null) { | ||||
|             return null; | ||||
|         } | ||||
|         final String userId = id.replace(":", "%3A"); | ||||
|         builder.append(userId); | ||||
|         if (type != StoryViewerOptions.Type.HIGHLIGHT) { | ||||
|         builder.append(id); | ||||
|         if (type != StoryViewerOptions.Type.HIGHLIGHT && type != StoryViewerOptions.Type.STORY_ARCHIVE) { | ||||
|             builder.append("/story/"); | ||||
|         } | ||||
|         return builder.toString(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user