mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 11:35:34 +00:00 
			
		
		
		
	implement swipe-up sticker + refresh inbox list after sending message
This commit is contained in:
		
							parent
							
								
									7b4c005513
								
							
						
					
					
						commit
						c3d92b8fc0
					
				| @ -65,6 +65,7 @@ import awais.instagrabber.models.enums.MediaItemType; | |||||||
| import awais.instagrabber.models.stickers.PollModel; | import awais.instagrabber.models.stickers.PollModel; | ||||||
| import awais.instagrabber.models.stickers.QuestionModel; | import awais.instagrabber.models.stickers.QuestionModel; | ||||||
| import awais.instagrabber.models.stickers.QuizModel; | import awais.instagrabber.models.stickers.QuizModel; | ||||||
|  | import awais.instagrabber.models.stickers.SwipeUpModel; | ||||||
| import awais.instagrabber.utils.Constants; | import awais.instagrabber.utils.Constants; | ||||||
| import awais.instagrabber.utils.Utils; | import awais.instagrabber.utils.Utils; | ||||||
| import awaisomereport.LogCollector; | import awaisomereport.LogCollector; | ||||||
| @ -99,6 +100,7 @@ public final class StoryViewer extends BaseLanguageActivity { | |||||||
|     private QuestionModel question; |     private QuestionModel question; | ||||||
|     private String[] mentions; |     private String[] mentions; | ||||||
|     private QuizModel quiz; |     private QuizModel quiz; | ||||||
|  |     private SwipeUpModel swipeUp; | ||||||
|     private StoryModel currentStory; |     private StoryModel currentStory; | ||||||
|     private String url, username; |     private String url, username; | ||||||
|     private int slidePos = 0, lastSlidePos = 0; |     private int slidePos = 0, lastSlidePos = 0; | ||||||
| @ -220,14 +222,17 @@ public final class StoryViewer extends BaseLanguageActivity { | |||||||
|             return false; |             return false; | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         storyViewerBinding.spotify.setOnClickListener(v -> { |         final View.OnClickListener linkActionListener = v -> { | ||||||
|             final Object tag = v.getTag(); |             final Object tag = v.getTag(); | ||||||
|             if (tag instanceof CharSequence) { |             if (tag instanceof CharSequence) { | ||||||
|                 final Intent intent = new Intent(Intent.ACTION_VIEW); |                 final Intent intent = new Intent(Intent.ACTION_VIEW); | ||||||
|                 intent.setData(Uri.parse(tag.toString())); |                 intent.setData(Uri.parse(tag.toString())); | ||||||
|                 startActivity(intent); |                 startActivity(intent); | ||||||
|             } |             } | ||||||
|         }); |         }; | ||||||
|  | 
 | ||||||
|  |         storyViewerBinding.spotify.setOnClickListener(linkActionListener); | ||||||
|  |         storyViewerBinding.swipeUp.setOnClickListener(linkActionListener); | ||||||
| 
 | 
 | ||||||
|         storyViewerBinding.viewStoryPost.setOnClickListener(v -> { |         storyViewerBinding.viewStoryPost.setOnClickListener(v -> { | ||||||
|             final Object tag = v.getTag(); |             final Object tag = v.getTag(); | ||||||
| @ -279,7 +284,7 @@ public final class StoryViewer extends BaseLanguageActivity { | |||||||
|                         .show(); |                         .show(); | ||||||
|             } |             } | ||||||
|             else if (tag instanceof QuizModel) { |             else if (tag instanceof QuizModel) { | ||||||
|                 quiz = (QuizModel) quiz; |                 quiz = quiz; | ||||||
|                 String[] choices = new String[quiz.getChoices().length]; |                 String[] choices = new String[quiz.getChoices().length]; | ||||||
|                 for (int q = 0; q < choices.length; ++q) { |                 for (int q = 0; q < choices.length; ++q) { | ||||||
|                     choices[q] = (quiz.getMyChoice() == q ? "√ " :"") + quiz.getChoices()[q]+ " (" + quiz.getCounts()[q] + ")"; |                     choices[q] = (quiz.getMyChoice() == q ? "√ " :"") + quiz.getChoices()[q]+ " (" + quiz.getCounts()[q] + ")"; | ||||||
| @ -509,6 +514,13 @@ public final class StoryViewer extends BaseLanguageActivity { | |||||||
|         storyViewerBinding.quiz.setVisibility(quiz != null ? View.VISIBLE : View.GONE); |         storyViewerBinding.quiz.setVisibility(quiz != null ? View.VISIBLE : View.GONE); | ||||||
|         storyViewerBinding.quiz.setTag(quiz); |         storyViewerBinding.quiz.setTag(quiz); | ||||||
| 
 | 
 | ||||||
|  |         swipeUp = currentStory.getSwipeUp(); | ||||||
|  |         storyViewerBinding.swipeUp.setVisibility(swipeUp != null ? View.VISIBLE : View.GONE); | ||||||
|  |         if (swipeUp != null) { | ||||||
|  |             storyViewerBinding.swipeUp.setText(swipeUp.getText()); | ||||||
|  |             storyViewerBinding.swipeUp.setTag(swipeUp.getUrl()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         releasePlayer(); |         releasePlayer(); | ||||||
|         final Intent intent = getIntent(); |         final Intent intent = getIntent(); | ||||||
|         if (intent.getBooleanExtra(Constants.EXTRAS_HASHTAG, false)) { |         if (intent.getBooleanExtra(Constants.EXTRAS_HASHTAG, false)) { | ||||||
|  | |||||||
| @ -16,7 +16,9 @@ import awais.instagrabber.models.enums.MediaItemType; | |||||||
| import awais.instagrabber.models.stickers.PollModel; | import awais.instagrabber.models.stickers.PollModel; | ||||||
| import awais.instagrabber.models.stickers.QuestionModel; | import awais.instagrabber.models.stickers.QuestionModel; | ||||||
| import awais.instagrabber.models.stickers.QuizModel; | import awais.instagrabber.models.stickers.QuizModel; | ||||||
|  | import awais.instagrabber.models.stickers.SwipeUpModel; | ||||||
| import awais.instagrabber.utils.Constants; | import awais.instagrabber.utils.Constants; | ||||||
|  | import awais.instagrabber.utils.LocaleUtils; | ||||||
| import awais.instagrabber.utils.Utils; | import awais.instagrabber.utils.Utils; | ||||||
| import awaisomereport.LogCollector; | import awaisomereport.LogCollector; | ||||||
| 
 | 
 | ||||||
| @ -51,6 +53,7 @@ public final class iStoryStatusFetcher extends AsyncTask<Void, Void, StoryModel[ | |||||||
|             conn.setInstanceFollowRedirects(true); |             conn.setInstanceFollowRedirects(true); | ||||||
|             conn.setUseCaches(false); |             conn.setUseCaches(false); | ||||||
|             conn.setRequestProperty("User-Agent", storiesig ? Constants.A_USER_AGENT : Constants.I_USER_AGENT); |             conn.setRequestProperty("User-Agent", storiesig ? Constants.A_USER_AGENT : Constants.I_USER_AGENT); | ||||||
|  |             conn.setRequestProperty("Accept-Language", LocaleUtils.getCurrentLocale().getLanguage() + ",en-US;q=0.8"); | ||||||
|             conn.connect(); |             conn.connect(); | ||||||
| 
 | 
 | ||||||
|             if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { |             if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { | ||||||
| @ -86,6 +89,7 @@ public final class iStoryStatusFetcher extends AsyncTask<Void, Void, StoryModel[ | |||||||
|                             models[i].setTappableShortCode(data.getJSONArray("story_feed_media").getJSONObject(0).optString("media_id")); |                             models[i].setTappableShortCode(data.getJSONArray("story_feed_media").getJSONObject(0).optString("media_id")); | ||||||
|                         } |                         } | ||||||
| 
 | 
 | ||||||
|  |                         // assuming everything is spotify | ||||||
|                         if (!data.isNull("story_app_attribution")) |                         if (!data.isNull("story_app_attribution")) | ||||||
|                             models[i].setSpotify(data.getJSONObject("story_app_attribution").optString("content_url").split("\\?")[0]); |                             models[i].setSpotify(data.getJSONObject("story_app_attribution").optString("content_url").split("\\?")[0]); | ||||||
| 
 | 
 | ||||||
| @ -101,6 +105,7 @@ public final class iStoryStatusFetcher extends AsyncTask<Void, Void, StoryModel[ | |||||||
|                                     tappableObject.optInt("viewer_vote", -1) |                                     tappableObject.optInt("viewer_vote", -1) | ||||||
|                             )); |                             )); | ||||||
|                         } |                         } | ||||||
|  | 
 | ||||||
|                         if (data.has("story_questions")) { |                         if (data.has("story_questions")) { | ||||||
|                             JSONObject tappableObject = data.getJSONArray("story_questions").getJSONObject(0).optJSONObject("question_sticker"); |                             JSONObject tappableObject = data.getJSONArray("story_questions").getJSONObject(0).optJSONObject("question_sticker"); | ||||||
|                             if (tappableObject != null && !tappableObject.getString("question_type").equals("music")) |                             if (tappableObject != null && !tappableObject.getString("question_type").equals("music")) | ||||||
| @ -109,6 +114,7 @@ public final class iStoryStatusFetcher extends AsyncTask<Void, Void, StoryModel[ | |||||||
|                                     tappableObject.getString("question") |                                     tappableObject.getString("question") | ||||||
|                                 )); |                                 )); | ||||||
|                         } |                         } | ||||||
|  | 
 | ||||||
|                         if (data.has("story_quizs")) { |                         if (data.has("story_quizs")) { | ||||||
|                             JSONObject tappableObject = data.getJSONArray("story_quizs").getJSONObject(0).optJSONObject("quiz_sticker"); |                             JSONObject tappableObject = data.getJSONArray("story_quizs").getJSONObject(0).optJSONObject("quiz_sticker"); | ||||||
|                             if (tappableObject != null) { |                             if (tappableObject != null) { | ||||||
| @ -129,6 +135,18 @@ public final class iStoryStatusFetcher extends AsyncTask<Void, Void, StoryModel[ | |||||||
|                                 )); |                                 )); | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|  | 
 | ||||||
|  |                         if (data.has("story_cta") && data.has("link_text")) { | ||||||
|  |                             JSONObject tappableObject = data.getJSONArray("story_cta").getJSONObject(0).getJSONArray("links").getJSONObject(0); | ||||||
|  |                             String swipeUpUrl = tappableObject.getString("webUri"); | ||||||
|  |                             if (swipeUpUrl.startsWith("http")) { | ||||||
|  |                                 models[i].setSwipeUp(new SwipeUpModel( | ||||||
|  |                                         swipeUpUrl, | ||||||
|  |                                         data.getString("link_text") | ||||||
|  |                                 )); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|                         JSONArray hashtags = data.optJSONArray("story_hashtags"); |                         JSONArray hashtags = data.optJSONArray("story_hashtags"); | ||||||
|                         JSONArray locations = data.optJSONArray("story_locations"); |                         JSONArray locations = data.optJSONArray("story_locations"); | ||||||
|                         JSONArray atmarks = data.optJSONArray("reel_mentions"); |                         JSONArray atmarks = data.optJSONArray("reel_mentions"); | ||||||
|  | |||||||
| @ -46,7 +46,7 @@ public class DirectMessageInboxFragment extends Fragment implements SwipeRefresh | |||||||
|     private String endCursor; |     private String endCursor; | ||||||
|     private AsyncTask<Void, Void, InboxModel> currentlyRunning; |     private AsyncTask<Void, Void, InboxModel> currentlyRunning; | ||||||
|     private InboxThreadModelListViewModel listViewModel; |     private InboxThreadModelListViewModel listViewModel; | ||||||
|     public static boolean afterLeave = false; |     public static boolean refreshPlease = false; | ||||||
| 
 | 
 | ||||||
|     private final FetchListener<InboxModel> fetchListener = new FetchListener<InboxModel>() { |     private final FetchListener<InboxModel> fetchListener = new FetchListener<InboxModel>() { | ||||||
|         @Override |         @Override | ||||||
| @ -119,9 +119,9 @@ public class DirectMessageInboxFragment extends Fragment implements SwipeRefresh | |||||||
|     @Override |     @Override | ||||||
|     public void onResume() { |     public void onResume() { | ||||||
|         super.onResume(); |         super.onResume(); | ||||||
|         if (afterLeave) { |         if (refreshPlease) { | ||||||
|             onRefresh(); |             onRefresh(); | ||||||
|             afterLeave = false; |             refreshPlease = false; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -199,7 +199,7 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr | |||||||
|                     titleText.clearFocus(); |                     titleText.clearFocus(); | ||||||
|                 } |                 } | ||||||
|                 else if (action.equals("leave")) { |                 else if (action.equals("leave")) { | ||||||
|                     DirectMessageInboxFragment.afterLeave = true; |                     DirectMessageInboxFragment.refreshPlease = true; | ||||||
|                     NavHostFragment.findNavController(DirectMessageSettingsFragment.this).popBackStack(R.id.directMessagesInboxFragment, false); |                     NavHostFragment.findNavController(DirectMessageSettingsFragment.this).popBackStack(R.id.directMessagesInboxFragment, false); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -221,12 +221,16 @@ public class DirectMessageThreadFragment extends Fragment { | |||||||
|                     case RAVEN_MEDIA: |                     case RAVEN_MEDIA: | ||||||
|                     case MEDIA: |                     case MEDIA: | ||||||
|                         final ProfileModel user = getUser(directItemModel.getUserId()); |                         final ProfileModel user = getUser(directItemModel.getUserId()); | ||||||
|                         String url = selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO ? selectedItem.getVideoUrl() : selectedItem.getThumbUrl(); |                         final DirectItemModel.DirectItemMediaModel selectedItem = | ||||||
|                         if (url != null) { |                                 itemType == DirectItemType.MEDIA ? directItemModel.getMediaModel() : directItemModel.getRavenMediaModel().getMedia(); | ||||||
|                             Utils.dmDownload(requireContext(), user.getUsername(), DownloadMethod.DOWNLOAD_DIRECT, Collections.singletonList(itemType == DirectItemType.MEDIA ? directItemModel.getMediaModel() : directItemModel.getRavenMediaModel().getMedia())); |                         final String url = selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO ? selectedItem.getVideoUrl() : selectedItem.getThumbUrl(); | ||||||
|  |                         if (url == null) { | ||||||
|  |                             Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show(); | ||||||
|  |                         } | ||||||
|  |                         else { | ||||||
|  |                             Utils.dmDownload(requireContext(), user.getUsername(), DownloadMethod.DOWNLOAD_DIRECT, selectedItem); | ||||||
|                             Toast.makeText(requireContext(), R.string.downloader_downloading_media, Toast.LENGTH_SHORT).show(); |                             Toast.makeText(requireContext(), R.string.downloader_downloading_media, Toast.LENGTH_SHORT).show(); | ||||||
|                         } |                         } | ||||||
|                         else Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show(); |  | ||||||
|                         break; |                         break; | ||||||
|                     case STORY_SHARE: |                     case STORY_SHARE: | ||||||
|                         if (directItemModel.getReelShare() != null) { |                         if (directItemModel.getReelShare() != null) { | ||||||
| @ -372,6 +376,7 @@ public class DirectMessageThreadFragment extends Fragment { | |||||||
|                 } |                 } | ||||||
|                 directItemModel.setLiked(); |                 directItemModel.setLiked(); | ||||||
|             } |             } | ||||||
|  |             DirectMessageInboxFragment.refreshPlease = true; | ||||||
|             hasSentSomething = true; |             hasSentSomething = true; | ||||||
|             new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |             new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); | ||||||
|         }); |         }); | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ import awais.instagrabber.models.enums.MediaItemType; | |||||||
| import awais.instagrabber.models.stickers.PollModel; | import awais.instagrabber.models.stickers.PollModel; | ||||||
| import awais.instagrabber.models.stickers.QuestionModel; | import awais.instagrabber.models.stickers.QuestionModel; | ||||||
| import awais.instagrabber.models.stickers.QuizModel; | import awais.instagrabber.models.stickers.QuizModel; | ||||||
|  | import awais.instagrabber.models.stickers.SwipeUpModel; | ||||||
| 
 | 
 | ||||||
| public final class StoryModel implements Serializable { | public final class StoryModel implements Serializable { | ||||||
|     private final String storyMediaId, storyUrl, username, userId; |     private final String storyMediaId, storyUrl, username, userId; | ||||||
| @ -15,6 +16,7 @@ public final class StoryModel implements Serializable { | |||||||
|     private PollModel poll; |     private PollModel poll; | ||||||
|     private QuestionModel question; |     private QuestionModel question; | ||||||
|     private QuizModel quiz; |     private QuizModel quiz; | ||||||
|  |     private SwipeUpModel swipeUp; | ||||||
|     private String[] mentions; |     private String[] mentions; | ||||||
|     private int position; |     private int position; | ||||||
|     private boolean isCurrentSlide = false, canReply = false; |     private boolean isCurrentSlide = false, canReply = false; | ||||||
| @ -66,6 +68,8 @@ public final class StoryModel implements Serializable { | |||||||
|         return quiz; |         return quiz; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public SwipeUpModel getSwipeUp() { return swipeUp;} | ||||||
|  | 
 | ||||||
|     public String[] getMentions() { |     public String[] getMentions() { | ||||||
|         return mentions; |         return mentions; | ||||||
|     } |     } | ||||||
| @ -106,6 +110,10 @@ public final class StoryModel implements Serializable { | |||||||
|         this.mentions = mentions; |         this.mentions = mentions; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public void setSwipeUp(final SwipeUpModel swipeUp) { | ||||||
|  |         this.swipeUp = swipeUp; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public void setPosition(final int position) { |     public void setPosition(final int position) { | ||||||
|         this.position = position; |         this.position = position; | ||||||
|     } |     } | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								app/src/main/java/awais/instagrabber/models/stickers/SwipeUpModel.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								app/src/main/java/awais/instagrabber/models/stickers/SwipeUpModel.java
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | package awais.instagrabber.models.stickers; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | 
 | ||||||
|  | public final class SwipeUpModel implements Serializable { | ||||||
|  |     private final String url, text; | ||||||
|  | 
 | ||||||
|  |     public SwipeUpModel(final String url, final String text) { | ||||||
|  |         this.url = url; | ||||||
|  |         this.text = text; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getUrl() { | ||||||
|  |         return url; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getText() { | ||||||
|  |         return text; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -990,10 +990,10 @@ public final class Utils { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static void dmDownload(@NonNull final Context context, @Nullable final String username, final DownloadMethod method, |     public static void dmDownload(@NonNull final Context context, @Nullable final String username, final DownloadMethod method, | ||||||
|                                      final List<? extends DirectItemMediaModel> itemsToDownload) { |                                      final DirectItemMediaModel itemsToDownload) { | ||||||
|         if (settingsHelper == null) settingsHelper = new SettingsHelper(context); |         if (settingsHelper == null) settingsHelper = new SettingsHelper(context); | ||||||
| 
 | 
 | ||||||
|         if (itemsToDownload == null || itemsToDownload.size() < 1) return; |         if (itemsToDownload == null) return; | ||||||
| 
 | 
 | ||||||
|         if (ContextCompat.checkSelfPermission(context, Utils.PERMS[0]) == PackageManager.PERMISSION_GRANTED) |         if (ContextCompat.checkSelfPermission(context, Utils.PERMS[0]) == PackageManager.PERMISSION_GRANTED) | ||||||
|             dmDownloadImpl(context, username, method, itemsToDownload); |             dmDownloadImpl(context, username, method, itemsToDownload); | ||||||
| @ -1002,7 +1002,7 @@ public final class Utils { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private static void dmDownloadImpl(@NonNull final Context context, @Nullable final String username, |     private static void dmDownloadImpl(@NonNull final Context context, @Nullable final String username, | ||||||
|                                           final DownloadMethod method, final List<? extends DirectItemMediaModel> itemsToDownload) { |                                           final DownloadMethod method, final DirectItemMediaModel selectedItem) { | ||||||
|         File dir = new File(Environment.getExternalStorageDirectory(), "Download"); |         File dir = new File(Environment.getExternalStorageDirectory(), "Download"); | ||||||
| 
 | 
 | ||||||
|         if (settingsHelper.getBoolean(FOLDER_SAVE_TO)) { |         if (settingsHelper.getBoolean(FOLDER_SAVE_TO)) { | ||||||
| @ -1014,22 +1014,11 @@ public final class Utils { | |||||||
|             dir = new File(dir, username); |             dir = new File(dir, username); | ||||||
| 
 | 
 | ||||||
|         if (dir.exists() || dir.mkdirs()) { |         if (dir.exists() || dir.mkdirs()) { | ||||||
|             final Main main = method != DownloadMethod.DOWNLOAD_FEED && context instanceof Main ? (Main) context : null; |  | ||||||
| 
 |  | ||||||
|             final int itemsToDownloadSize = itemsToDownload.size(); |  | ||||||
| 
 |  | ||||||
|             final File finalDir = dir; |             final File finalDir = dir; | ||||||
|             for (int i = itemsToDownloadSize - 1; i >= 0; i--) { |             new DownloadAsync(context, | ||||||
|                 final DirectItemMediaModel selectedItem = itemsToDownload.get(i); |                     selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO ? selectedItem.getVideoUrl() : selectedItem.getThumbUrl(), | ||||||
| 
 |                     getDownloadSaveFileDm(finalDir, selectedItem, ""), | ||||||
|                 if (main == null) { |                     null).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); | ||||||
|                     new DownloadAsync(context, |  | ||||||
|                             selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO ? selectedItem.getVideoUrl() : selectedItem.getThumbUrl(), |  | ||||||
|                             getDownloadSaveFileDm(finalDir, selectedItem, ""), |  | ||||||
|                             null).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |  | ||||||
| 
 |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } else |         } else | ||||||
|             Toast.makeText(context, R.string.error_creating_folders, Toast.LENGTH_SHORT).show(); |             Toast.makeText(context, R.string.error_creating_folders, Toast.LENGTH_SHORT).show(); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -81,6 +81,15 @@ | |||||||
|                 android:textColor="@color/btn_blue_text_color" |                 android:textColor="@color/btn_blue_text_color" | ||||||
|                 android:visibility="gone" |                 android:visibility="gone" | ||||||
|                 app:backgroundTint="@color/btn_blue_background" /> |                 app:backgroundTint="@color/btn_blue_background" /> | ||||||
|  |             <androidx.appcompat.widget.AppCompatButton | ||||||
|  |                 android:id="@+id/swipeUp" | ||||||
|  |                 android:layout_width="match_parent" | ||||||
|  |                 android:layout_height="wrap_content" | ||||||
|  |                 android:layout_weight="1" | ||||||
|  |                 android:text="SAMPLE TEXT" | ||||||
|  |                 android:textColor="@color/btn_blue_text_color" | ||||||
|  |                 android:visibility="gone" | ||||||
|  |                 app:backgroundTint="@color/btn_blue_background" /> | ||||||
|             <androidx.appcompat.widget.AppCompatButton |             <androidx.appcompat.widget.AppCompatButton | ||||||
|                 android:id="@+id/mention" |                 android:id="@+id/mention" | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user