mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 03:25:34 +00:00 
			
		
		
		
	general maintenance
1. Close #689 2. Greek and Basque 3. Fix/add several strings 4. Fix launch crash 5. Fix staggered grid sidecar bug
This commit is contained in:
		
							parent
							
								
									ea92dcf8d9
								
							
						
					
					
						commit
						bbe3d9c588
					
				| @ -12,13 +12,11 @@ import com.facebook.imagepipeline.core.ImagePipelineConfig; | ||||
| import java.net.CookieHandler; | ||||
| import java.text.SimpleDateFormat; | ||||
| import java.util.UUID; | ||||
| import java.util.concurrent.ThreadLocalRandom; | ||||
| 
 | ||||
| import awais.instagrabber.utils.Constants; | ||||
| import awais.instagrabber.utils.LocaleUtils; | ||||
| import awais.instagrabber.utils.SettingsHelper; | ||||
| import awais.instagrabber.utils.TextUtils; | ||||
| import awais.instagrabber.utils.UserAgentUtils; | ||||
| import awaisomereport.CrashReporter; | ||||
| import awaisomereport.LogCollector; | ||||
| 
 | ||||
| @ -87,15 +85,5 @@ public final class InstaGrabberApplication extends Application { | ||||
|         if (TextUtils.isEmpty(settingsHelper.getString(Constants.DEVICE_UUID))) { | ||||
|             settingsHelper.putString(Constants.DEVICE_UUID, UUID.randomUUID().toString()); | ||||
|         } | ||||
| 
 | ||||
|         if (settingsHelper.getInteger(Constants.BROWSER_UA_CODE) == -1) { | ||||
|             int randomNum = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.browsers.length); | ||||
|             settingsHelper.putInteger(Constants.BROWSER_UA_CODE, randomNum); | ||||
|         } | ||||
| 
 | ||||
|         if (settingsHelper.getInteger(Constants.APP_UA_CODE) == -1) { | ||||
|             int randomNum = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.devices.length); | ||||
|             settingsHelper.putInteger(Constants.APP_UA_CODE, randomNum); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -83,6 +83,10 @@ public class FeedGridItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     final Media child = sliderItems.get(0); | ||||
|                     if (child != null) { | ||||
|                         thumbnailUrl = ResponseBodyUtils.getThumbUrl(child); | ||||
|                         if (layoutPreferences.getType() == STAGGERED_GRID) { | ||||
|                             final float childAspectRatio = (float) child.getOriginalWidth() / child.getOriginalHeight(); | ||||
|                             binding.postImage.setAspectRatio(childAspectRatio); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 typeIconRes = R.drawable.ic_checkbox_multiple_blank_stroke; | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| package awais.instagrabber.adapters.viewholder.directmessages; | ||||
| 
 | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.Typeface; | ||||
| import android.view.View; | ||||
| 
 | ||||
| @ -126,13 +127,14 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
| 
 | ||||
|     private void setSubtitle(@NonNull final DirectThread thread) { | ||||
|         // If there is an unopened raven media, give it highest priority | ||||
|         final Resources resources = itemView.getResources(); | ||||
|         final DirectThreadDirectStory directStory = thread.getDirectStory(); | ||||
|         final long viewerId = thread.getViewerId(); | ||||
|         if (directStory != null && !directStory.getItems().isEmpty()) { | ||||
|             final DirectItem item = directStory.getItems().get(0); | ||||
|             final MediaItemType mediaType = item.getVisualMedia().getMedia().getMediaType(); | ||||
|             final String username = getUsername(thread.getUsers(), item.getUserId(), viewerId); | ||||
|             final String subtitle = getMediaSpecificSubtitle(username, mediaType); | ||||
|             final String username = getUsername(thread.getUsers(), item.getUserId(), viewerId, resources); | ||||
|             final String subtitle = getMediaSpecificSubtitle(username, resources, mediaType); | ||||
|             binding.subtitle.setText(subtitle); | ||||
|             return; | ||||
|         } | ||||
| @ -144,7 +146,7 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|         final String username = getUsername(thread.getUsers(), senderId, viewerId); | ||||
|         String message = ""; | ||||
|         if (itemType == null) { | ||||
|             message = "Unsupported message"; | ||||
|             message = resources.getString(R.string.dms_inbox_raven_message_unknown); | ||||
|         } else { | ||||
|             switch (itemType) { | ||||
|                 case TEXT: | ||||
| @ -160,20 +162,20 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     message = item.getPlaceholder().getMessage(); | ||||
|                     break; | ||||
|                 case MEDIA_SHARE: | ||||
|                     subtitle = String.format("%s shared a post", username != null ? username : ""); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_post, username != null ? username : "", item.getMediaShare().getUser().getUsername()); | ||||
|                     break; | ||||
|                 case ANIMATED_MEDIA: | ||||
|                     subtitle = String.format("%s shared a gif", username != null ? username : ""); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_gif, username != null ? username : ""); | ||||
|                     break; | ||||
|                 case PROFILE: | ||||
|                     subtitle = String.format("%s shared a profile: @%s", username != null ? username : "", item.getProfile().getUsername()); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_profile, username != null ? username : "", item.getProfile().getUsername()); | ||||
|                     break; | ||||
|                 case LOCATION: | ||||
|                     subtitle = String.format("%s shared a location: %s", username != null ? username : "", item.getLocation().getName()); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_location, username != null ? username : "", item.getLocation().getName()); | ||||
|                     break; | ||||
|                 case MEDIA: { | ||||
|                     final MediaItemType mediaType = item.getMedia().getMediaType(); | ||||
|                     subtitle = getMediaSpecificSubtitle(username, mediaType); | ||||
|                     subtitle = getMediaSpecificSubtitle(username, resources, mediaType); | ||||
|                     break; | ||||
|                 } | ||||
|                 case STORY_SHARE: { | ||||
| @ -181,17 +183,16 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     if (reelType == null) { | ||||
|                         subtitle = item.getStoryShare().getTitle(); | ||||
|                     } else { | ||||
|                         String format = "%s shared a story by @%s"; | ||||
|                         if (reelType.equals("highlight_reel")) { | ||||
|                             format = "%s shared a story highlight by @%s"; | ||||
|                         } | ||||
|                         subtitle = String.format(format, username != null ? username : "", | ||||
|                         final int format = reelType.equals("highlight_reel") | ||||
|                                 ? R.string.dms_inbox_shared_highlight | ||||
|                                 : R.string.dms_inbox_shared_story; | ||||
|                         subtitle = resources.getString(format, username != null ? username : "", | ||||
|                                                  item.getStoryShare().getMedia().getUser().getUsername()); | ||||
|                     } | ||||
|                     break; | ||||
|                 } | ||||
|                 case VOICE_MEDIA: | ||||
|                     subtitle = String.format("%s sent a voice message", username != null ? username : ""); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_voice, username != null ? username : ""); | ||||
|                     break; | ||||
|                 case ACTION_LOG: | ||||
|                     subtitle = item.getActionLog().getDescription(); | ||||
| @ -200,15 +201,15 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     subtitle = item.getVideoCallEvent().getDescription(); | ||||
|                     break; | ||||
|                 case CLIP: | ||||
|                     subtitle = String.format("%s shared a clip by @%s", username != null ? username : "", | ||||
|                                              item.getClip().getClip().getUser().getUsername()); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_clip, username != null ? username : "", | ||||
|                                                    item.getClip().getClip().getUser().getUsername()); | ||||
|                     break; | ||||
|                 case FELIX_SHARE: | ||||
|                     subtitle = String.format("%s shared an IGTV video by @%s", username != null ? username : "", | ||||
|                                              item.getFelixShare().getVideo().getUser().getUsername()); | ||||
|                     subtitle = resources.getString(R.string.dms_inbox_shared_igtv, username != null ? username : "", | ||||
|                                                    item.getFelixShare().getVideo().getUser().getUsername()); | ||||
|                     break; | ||||
|                 case RAVEN_MEDIA: | ||||
|                     subtitle = getRavenMediaSubtitle(item, username); | ||||
|                     subtitle = getRavenMediaSubtitle(item, resources, username); | ||||
|                     break; | ||||
|                 case REEL_SHARE: | ||||
|                     final DirectItemReelShare reelShare = item.getReelShare(); | ||||
| @ -220,9 +221,9 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     switch (reelType) { | ||||
|                         case "reply": | ||||
|                             if (viewerId == item.getUserId()) { | ||||
|                                 subtitle = String.format("You replied to their story: %s", reelShare.getText()); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_replied_story_outgoing, reelShare.getText()); | ||||
|                             } else { | ||||
|                                 subtitle = String.format("%s replied to your story: %s", username != null ? username : "", reelShare.getText()); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_replied_story_incoming, username != null ? username : "", reelShare.getText()); | ||||
|                             } | ||||
|                             break; | ||||
|                         case "mention": | ||||
| @ -230,17 +231,17 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                                 // You mentioned the other person | ||||
|                                 final long mentionedUserId = item.getReelShare().getMentionedUserId(); | ||||
|                                 final String otherUsername = getUsername(thread.getUsers(), mentionedUserId, viewerId); | ||||
|                                 subtitle = String.format("You mentioned @%s in your story", otherUsername); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_mentioned_story_outgoing, otherUsername); | ||||
|                             } else { | ||||
|                                 // They mentioned you | ||||
|                                 subtitle = String.format("%s mentioned you in their story", username != null ? username : ""); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_mentioned_story_incoming, username != null ? username : ""); | ||||
|                             } | ||||
|                             break; | ||||
|                         case "reaction": | ||||
|                             if (viewerId == item.getUserId()) { | ||||
|                                 subtitle = String.format("You reacted to their story: %s", reelShare.getText()); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_reacted_story_outgoing, reelShare.getText()); | ||||
|                             } else { | ||||
|                                 subtitle = String.format("%s reacted to your story: %s", username != null ? username : "", reelShare.getText()); | ||||
|                                 subtitle = resources.getString(R.string.dms_inbox_reacted_story_incoming, username != null ? username : "", reelShare.getText()); | ||||
|                             } | ||||
|                             break; | ||||
|                         default: | ||||
| @ -249,7 +250,7 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|                     } | ||||
|                     break; | ||||
|                 default: | ||||
|                     message = "Unsupported message"; | ||||
|                     message = resources.getString(R.string.dms_inbox_raven_message_unknown); | ||||
|             } | ||||
|         } | ||||
|         if (subtitle == null) { | ||||
| @ -263,10 +264,10 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|         binding.subtitle.setText(subtitle != null ? subtitle : ""); | ||||
|     } | ||||
| 
 | ||||
|     private String getMediaSpecificSubtitle(final String username, final MediaItemType mediaType) { | ||||
|         final String userSharedAnImage = String.format("%s shared an image", username != null ? username : ""); | ||||
|         final String userSharedAVideo = String.format("%s shared a video", username != null ? username : ""); | ||||
|         final String userSentAMessage = String.format("%s sent a message", username != null ? username : ""); | ||||
|     private String getMediaSpecificSubtitle(final String username, final Resources resources, final MediaItemType mediaType) { | ||||
|         final String userSharedAnImage = resources.getString(R.string.dms_inbox_shared_image, username != null ? username : ""); | ||||
|         final String userSharedAVideo = resources.getString(R.string.dms_inbox_shared_video, username != null ? username : ""); | ||||
|         final String userSentAMessage = resources.getString(R.string.dms_inbox_shared_message, username != null ? username : ""); | ||||
|         String subtitle; | ||||
|         switch (mediaType) { | ||||
|             case MEDIA_TYPE_IMAGE: | ||||
| @ -283,6 +284,7 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|     } | ||||
| 
 | ||||
|     private String getRavenMediaSubtitle(final DirectItem item, | ||||
|                                          final Resources resources, | ||||
|                                          final String username) { | ||||
|         String subtitle = "↗ "; | ||||
|         final DirectItemVisualMedia visualMedia = item.getVisualMedia(); | ||||
| @ -325,15 +327,16 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder { | ||||
|             return subtitle; | ||||
|         } | ||||
|         final MediaItemType mediaType = visualMedia.getMedia().getMediaType(); | ||||
|         subtitle = getMediaSpecificSubtitle(username, mediaType); | ||||
|         subtitle = getMediaSpecificSubtitle(username, resources, mediaType); | ||||
|         return subtitle; | ||||
|     } | ||||
| 
 | ||||
|     private String getUsername(final List<User> users, | ||||
|                                final long userId, | ||||
|                                final long viewerId) { | ||||
|                                final long viewerId, | ||||
|                                final Resources resources) { | ||||
|         if (userId == viewerId) { | ||||
|             return "You"; | ||||
|             return resources.getString(R.string.you); | ||||
|         } | ||||
|         final Optional<User> senderOptional = users.stream() | ||||
|                                                    .filter(Objects::nonNull) | ||||
|  | ||||
| @ -115,19 +115,21 @@ public abstract class FeedItemViewHolder extends RecyclerView.ViewHolder { | ||||
| 
 | ||||
|     private void setupLocation(@NonNull final Media media) { | ||||
|         final Location location = media.getLocation(); | ||||
|         final String locationName = location.getName(); | ||||
|         if (TextUtils.isEmpty(locationName)) { | ||||
|             topBinding.location.setVisibility(View.GONE); | ||||
|             topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams( | ||||
|                     RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT | ||||
|             )); | ||||
|         } else { | ||||
|             topBinding.location.setVisibility(View.VISIBLE); | ||||
|             topBinding.location.setText(locationName); | ||||
|             topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams( | ||||
|                     RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT | ||||
|             )); | ||||
|             topBinding.location.setOnClickListener(v -> feedItemCallback.onLocationClick(media)); | ||||
|         if (location != null) { | ||||
|             final String locationName = location.getName(); | ||||
|             if (TextUtils.isEmpty(locationName)) { | ||||
|                 topBinding.location.setVisibility(View.GONE); | ||||
|                 topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams( | ||||
|                         RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT | ||||
|                 )); | ||||
|             } else { | ||||
|                 topBinding.location.setVisibility(View.VISIBLE); | ||||
|                 topBinding.location.setText(locationName); | ||||
|                 topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams( | ||||
|                         RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT | ||||
|                 )); | ||||
|                 topBinding.location.setOnClickListener(v -> feedItemCallback.onLocationClick(media)); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -87,12 +87,20 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr | ||||
|     private final ServiceCallback<ArchiveFetchResponse> cb = new ServiceCallback<ArchiveFetchResponse>() { | ||||
|         @Override | ||||
|         public void onSuccess(final ArchiveFetchResponse result) { | ||||
|             endCursor = result.getNextCursor(); | ||||
|             final List<HighlightModel> models = archivesViewModel.getList().getValue(); | ||||
|             final List<HighlightModel> modelsCopy = models == null ? new ArrayList<>() : new ArrayList<>(models); | ||||
|             modelsCopy.addAll(result.getResult()); | ||||
|             archivesViewModel.getList().postValue(modelsCopy); | ||||
|             binding.swipeRefreshLayout.setRefreshing(false); | ||||
|             if (result == null) { | ||||
|                 try { | ||||
|                     final Context context = getContext(); | ||||
|                     Toast.makeText(context, R.string.empty_list, Toast.LENGTH_SHORT).show(); | ||||
|                 } catch (Exception ignored) {} | ||||
|             } | ||||
|             else { | ||||
|                 endCursor = result.getNextCursor(); | ||||
|                 final List<HighlightModel> models = archivesViewModel.getList().getValue(); | ||||
|                 final List<HighlightModel> modelsCopy = models == null ? new ArrayList<>() : new ArrayList<>(models); | ||||
|                 modelsCopy.addAll(result.getResult()); | ||||
|                 archivesViewModel.getList().postValue(modelsCopy); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|  | ||||
| @ -21,6 +21,7 @@ import androidx.appcompat.app.AppCompatActivity; | ||||
| import java.security.MessageDigest; | ||||
| import java.security.NoSuchAlgorithmException; | ||||
| import java.util.Locale; | ||||
| import java.util.concurrent.ThreadLocalRandom; | ||||
| 
 | ||||
| import javax.security.cert.CertificateException; | ||||
| import javax.security.cert.X509Certificate; | ||||
| @ -103,10 +104,18 @@ public final class FlavorTown { | ||||
| 
 | ||||
|     public static void changelogCheck(@NonNull final Context context) { | ||||
|         if (settingsHelper.getInteger(Constants.PREV_INSTALL_VERSION) < BuildConfig.VERSION_CODE) { | ||||
|             final int appUaCode = settingsHelper.getInteger(Constants.APP_UA_CODE); | ||||
|             int appUaCode = settingsHelper.getInteger(Constants.APP_UA_CODE); | ||||
|             int browserUaCode = settingsHelper.getInteger(Constants.BROWSER_UA_CODE); | ||||
|             if (browserUaCode == -1) { | ||||
|                 browserUaCode = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.browsers.length); | ||||
|                 settingsHelper.putInteger(Constants.BROWSER_UA_CODE, browserUaCode); | ||||
|             } | ||||
|             if (appUaCode == -1) { | ||||
|                 appUaCode = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.devices.length); | ||||
|                 settingsHelper.putInteger(Constants.APP_UA_CODE, appUaCode); | ||||
|             } | ||||
|             final String appUa = UserAgentUtils.generateAppUA(appUaCode, LocaleUtils.getCurrentLocale().getLanguage()); | ||||
|             settingsHelper.putString(Constants.APP_UA, appUa); | ||||
|             final int browserUaCode = settingsHelper.getInteger(Constants.BROWSER_UA_CODE); | ||||
|             final String browserUa = UserAgentUtils.generateBrowserUA(browserUaCode); | ||||
|             settingsHelper.putString(Constants.BROWSER_UA, browserUa); | ||||
|             Toast.makeText(context, R.string.updated, Toast.LENGTH_SHORT).show(); | ||||
|  | ||||
| @ -57,26 +57,30 @@ public final class LocaleUtils { | ||||
|         if (TextUtils.isEmpty(appLanguageSettings)) return null; | ||||
| 
 | ||||
|         final int appLanguageIndex = Integer.parseInt(appLanguageSettings); | ||||
|         if (appLanguageIndex == 1) return "en"; | ||||
|         if (appLanguageIndex == 2) return "fr"; | ||||
|         if (appLanguageIndex == 3) return "es"; | ||||
|         if (appLanguageIndex == 4) return "zh_CN"; | ||||
|         if (appLanguageIndex == 5) return "in"; | ||||
|         if (appLanguageIndex == 6) return "it"; | ||||
|         if (appLanguageIndex == 7) return "de"; | ||||
|         if (appLanguageIndex == 8) return "pl"; | ||||
|         if (appLanguageIndex == 9) return "tr"; | ||||
|         if (appLanguageIndex == 10) return "pt"; | ||||
|         if (appLanguageIndex == 11) return "fa"; | ||||
|         if (appLanguageIndex == 12) return "mk"; | ||||
|         if (appLanguageIndex == 13) return "vi"; | ||||
|         if (appLanguageIndex == 14) return "zh_TW"; | ||||
|         if (appLanguageIndex == 15) return "ca"; | ||||
|         if (appLanguageIndex == 16) return "ru"; | ||||
|         if (appLanguageIndex == 17) return "hi"; | ||||
|         if (appLanguageIndex == 18) return "nl"; | ||||
|         if (appLanguageIndex == 19) return "sk"; | ||||
|         if (appLanguageIndex == 20) return "ja"; | ||||
|         switch (appLanguageIndex) { | ||||
|             case 1: return "en"; | ||||
|             case 2: return "fr"; | ||||
|             case 3: return "es"; | ||||
|             case 4: return "zh_CN"; | ||||
|             case 5: return "in"; | ||||
|             case 6: return "it"; | ||||
|             case 7: return "de"; | ||||
|             case 8: return "pl"; | ||||
|             case 9: return "tr"; | ||||
|             case 10: return "pt"; | ||||
|             case 11: return "fa"; | ||||
|             case 12: return "mk"; | ||||
|             case 13: return "vi"; | ||||
|             case 14: return "zh_TW"; | ||||
|             case 15: return "ca"; | ||||
|             case 16: return "ru"; | ||||
|             case 17: return "hi"; | ||||
|             case 18: return "nl"; | ||||
|             case 19: return "sk"; | ||||
|             case 20: return "ja"; | ||||
|             case 21: return "el"; | ||||
|             case 22: return "eu"; | ||||
|         } | ||||
| 
 | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
| @ -18,8 +18,8 @@ public class UserAgentUtils { | ||||
|             "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15" | ||||
|     }; | ||||
|     // use APKpure, assume x86 | ||||
|     private static final String igVersion = "169.3.0.30.135"; | ||||
|     private static final String igVersionCode = "264009054"; | ||||
|     private static final String igVersion = "175.1.0.25.119"; | ||||
|     private static final String igVersionCode = "273907115"; | ||||
|     // only pick the ones that has width 1440 for maximum download quality | ||||
|     public static final String[] devices = { | ||||
|             // https://github.com/dilame/instagram-private-api/blob/master/src/samples/devices.json | ||||
|  | ||||
| @ -276,7 +276,6 @@ public class StoriesService extends BaseService { | ||||
|         form.put("include_suggested_highlights", "false"); | ||||
|         form.put("is_in_archive_home", "true"); | ||||
|         form.put("include_cover", "1"); | ||||
|         form.put("timezone_offset", String.valueOf((float) TimeZone.getDefault().getRawOffset() / 1000)); | ||||
|         if (!TextUtils.isEmpty(maxId)) { | ||||
|             form.put("max_id", maxId); // NOT TESTED | ||||
|         } | ||||
|  | ||||
| @ -22,6 +22,8 @@ | ||||
|         <item translatable="false">Nederlands</item> | ||||
|         <item translatable="false">Slovenčina</item> | ||||
|         <item translatable="false">日本語</item> | ||||
|         <item translatable="false">Ελληνικά</item> | ||||
|         <item translatable="false">Euskara</item> | ||||
|     </string-array> | ||||
|     <string-array name="theme_presets"> | ||||
|         <item>Auto / Follow System</item> | ||||
|  | ||||
| @ -39,7 +39,7 @@ | ||||
|     <string name="error_loading_profile">Error loading profile! Is the username valid? If so, you may be ratelimited.</string> | ||||
|     <string name="error_loading_profile_loggedin">Error loading profile! Is the username valid? Or did they block you?</string> | ||||
|     <string name="error_loading_hashtag">Error loading hashtag! Is the name valid?</string> | ||||
|     <string name="error_loading_location">Error loading hashtag! Is the URL valid?</string> | ||||
|     <string name="error_loading_location">Error loading location! Is the URL valid?</string> | ||||
|     <string name="error_creating_folders">Error creating Download folder(s).</string> | ||||
|     <string name="save_to_folder">Save to custom folder</string> | ||||
|     <string name="select_folder">Select folder</string> | ||||
| @ -166,7 +166,7 @@ | ||||
|     <string name="direct_messages_replied_story">Replied to a story</string> | ||||
|     <string name="direct_messages_reacted_story">Reacted on a story</string> | ||||
|     <string name="direct_messages_mention_story">Mentioned in a story</string> | ||||
|     <string name="dms_inbox_raven_message_unknown"><i>Unsupported message type</i></string> | ||||
|     <string name="dms_inbox_raven_message_unknown">Unsupported message type</string> | ||||
|     <string name="dms_inbox_open_link">Open link</string> | ||||
|     <string name="dms_inbox_copy_text">Copy text</string> | ||||
|     <string name="dms_inbox_download">Download attachment</string> | ||||
| @ -174,7 +174,24 @@ | ||||
|     <string name="dms_inbox_unlike">Unlike message</string> | ||||
|     <string name="dms_inbox_unsend">Unsend message</string> | ||||
|     <string name="dms_inbox_author">View author profile</string> | ||||
|     <string name="dms_inbox_media_shared_from">Post shared from %s</string> | ||||
|     <string name="dms_inbox_shared_post">%s shared a post by @%s</string> | ||||
|     <string name="dms_inbox_shared_image">%s shared an image</string> | ||||
|     <string name="dms_inbox_shared_video">%s shared a video</string> | ||||
|     <string name="dms_inbox_shared_message">%s sent a message</string> | ||||
|     <string name="dms_inbox_shared_gif">%s shared a gif</string> | ||||
|     <string name="dms_inbox_shared_profile">%s shared a profile: @%s</string> | ||||
|     <string name="dms_inbox_shared_location">%s shared a location: %s</string> | ||||
|     <string name="dms_inbox_shared_highlight">%s shared a story highlight by @%s</string> | ||||
|     <string name="dms_inbox_shared_story">%s shared a story by @%s</string> | ||||
|     <string name="dms_inbox_shared_voice">%s sent a voice message</string> | ||||
|     <string name="dms_inbox_shared_clip">%s shared a clip by @%s</string> | ||||
|     <string name="dms_inbox_shared_igtv">%s shared an IGTV video by @%s</string> | ||||
|     <string name="dms_inbox_replied_story_outgoing">You replied to their story: %s</string> | ||||
|     <string name="dms_inbox_replied_story_incoming">%s replied to your story: %s</string> | ||||
|     <string name="dms_inbox_reacted_story_outgoing">You reacted to their story: %s</string> | ||||
|     <string name="dms_inbox_reacted_story_incoming">%s reacted to your story: %s</string> | ||||
|     <string name="dms_inbox_mentioned_story_outgoing">You mentioned @%s in your story</string> | ||||
|     <string name="dms_inbox_mentioned_story_incoming">%s mentioned you in their story</string> | ||||
|     <string name="dms_inbox_raven_media_unknown"><i>Unknown media type</i></string> | ||||
|     <string name="dms_inbox_raven_media_expired">Media expired!</string> | ||||
|     <string name="dms_inbox_raven_media_delivered">Delivered</string> | ||||
| @ -431,4 +448,5 @@ | ||||
|     <string name="accept_request_from_user">Accept request from %1s (%2s)?</string> | ||||
|     <string name="decline">Decline</string> | ||||
|     <string name="accept">Accept</string> | ||||
|     <string name="you">You</string> | ||||
| </resources> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user