├── fastlane ├── metadata │ └── android │ │ ├── en-US │ │ ├── title.txt │ │ ├── changelogs │ │ │ ├── default.txt │ │ │ ├── 140.txt │ │ │ ├── 102.txt │ │ │ ├── 138.txt │ │ │ ├── 147.txt │ │ │ ├── 143.txt │ │ │ ├── 133.txt │ │ │ ├── 88.txt │ │ │ ├── 86.txt │ │ │ ├── 135.txt │ │ │ ├── 110.txt │ │ │ ├── 116.txt │ │ │ ├── 125.txt │ │ │ ├── 93.txt │ │ │ └── 128.txt │ │ ├── short_description.txt │ │ └── images │ │ │ ├── icon.png │ │ │ ├── featureGraphic.png │ │ │ └── phoneScreenshots │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ └── 8.png │ │ ├── ja │ │ └── short_description.txt │ │ ├── ko │ │ └── short_description.txt │ │ ├── zh-CN │ │ └── short_description.txt │ │ ├── hy │ │ └── short_description.txt │ │ ├── zh-TW │ │ └── short_description.txt │ │ ├── be │ │ └── short_description.txt │ │ ├── el │ │ └── short_description.txt │ │ ├── et │ │ └── short_description.txt │ │ ├── fy │ │ └── short_description.txt │ │ ├── he │ │ └── short_description.txt │ │ ├── lt │ │ └── short_description.txt │ │ ├── ru │ │ └── short_description.txt │ │ ├── sl │ │ └── short_description.txt │ │ ├── sv │ │ └── short_description.txt │ │ ├── th │ │ └── short_description.txt │ │ ├── uk │ │ └── short_description.txt │ │ ├── vi │ │ └── short_description.txt │ │ ├── ar │ │ └── short_description.txt │ │ ├── bn │ │ └── short_description.txt │ │ ├── bs │ │ └── short_description.txt │ │ ├── ca │ │ └── short_description.txt │ │ ├── cs │ │ └── short_description.txt │ │ ├── cy │ │ └── short_description.txt │ │ ├── da │ │ └── short_description.txt │ │ ├── fa │ │ └── short_description.txt │ │ ├── fil │ │ └── short_description.txt │ │ ├── ga │ │ └── short_description.txt │ │ ├── gd │ │ └── short_description.txt │ │ ├── gl │ │ └── short_description.txt │ │ ├── hi │ │ └── short_description.txt │ │ ├── hr │ │ └── short_description.txt │ │ ├── ia │ │ └── short_description.txt │ │ ├── ig │ │ └── short_description.txt │ │ ├── ka │ │ └── short_description.txt │ │ ├── kab │ │ └── short_description.txt │ │ ├── my │ │ └── short_description.txt │ │ ├── nl │ │ └── short_description.txt │ │ ├── no │ │ └── short_description.txt │ │ ├── oc │ │ └── short_description.txt │ │ ├── pl │ │ └── short_description.txt │ │ ├── pt │ │ └── short_description.txt │ │ ├── ro │ │ └── short_description.txt │ │ ├── si │ │ └── short_description.txt │ │ ├── sk │ │ └── short_description.txt │ │ ├── ur │ │ └── short_description.txt │ │ ├── de │ │ └── short_description.txt │ │ ├── es │ │ └── short_description.txt │ │ ├── fi │ │ └── short_description.txt │ │ ├── hu │ │ └── short_description.txt │ │ ├── id │ │ └── short_description.txt │ │ ├── is │ │ └── short_description.txt │ │ ├── it │ │ └── short_description.txt │ │ ├── pt-BR │ │ └── short_description.txt │ │ ├── tr │ │ └── short_description.txt │ │ ├── eu │ │ └── short_description.txt │ │ └── fr │ │ └── short_description.txt └── Appfile ├── Gemfile ├── mastodon ├── src │ ├── main │ │ ├── res │ │ │ ├── resources.properties │ │ │ ├── drawable-nodpi │ │ │ │ ├── poof.png │ │ │ │ ├── splash_art_layer0.webp │ │ │ │ ├── splash_art_layer1.webp │ │ │ │ ├── splash_art_layer2.webp │ │ │ │ ├── splash_art_layer3.webp │ │ │ │ ├── splash_art_layer4.webp │ │ │ │ └── donation_successful_art.webp │ │ │ ├── values │ │ │ │ ├── misc.xml │ │ │ │ └── urls.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values-hdpi │ │ │ │ └── misc.xml │ │ │ ├── values-tvdpi │ │ │ │ └── misc.xml │ │ │ ├── values-xhdpi │ │ │ │ └── misc.xml │ │ │ ├── values-xxhdpi │ │ │ │ └── misc.xml │ │ │ ├── values-xxxhdpi │ │ │ │ └── misc.xml │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── scribble.webp │ │ │ │ └── confirm_email_art.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── xml │ │ │ │ ├── fileprovider_paths.xml │ │ │ │ └── network_security_config.xml │ │ │ ├── drawable-xhdpi │ │ │ │ └── confirm_email_art.webp │ │ │ ├── anim │ │ │ │ ├── no_op_300ms.xml │ │ │ │ ├── fade_out_fast.xml │ │ │ │ ├── fragment_enter.xml │ │ │ │ └── fragment_exit.xml │ │ │ ├── values-v33 │ │ │ │ └── colors.xml │ │ │ ├── values-v27 │ │ │ │ └── colors.xml │ │ │ ├── drawable │ │ │ │ ├── image_placeholder.xml │ │ │ │ ├── white_circle.xml │ │ │ │ ├── rect_4dp.xml │ │ │ │ ├── empty_8dp.xml │ │ │ │ ├── rect_12dp.xml │ │ │ │ ├── rect_24dp.xml │ │ │ │ ├── round_rect.xml │ │ │ │ ├── bg_tabbar_badge.xml │ │ │ │ ├── bg_image_alt_overlay.xml │ │ │ │ ├── bg_profile_follows_you.xml │ │ │ │ ├── bg_onboarding_avatar.xml │ │ │ │ ├── divider_vertical_outline.xml │ │ │ │ ├── divider_vertical_variant_1dp.xml │ │ │ │ ├── profile_ava_bg.xml │ │ │ │ ├── bg_inline_status.xml │ │ │ │ ├── bg_settings_banner.xml │ │ │ │ ├── fg_onboarding_ava.xml │ │ │ │ ├── fg_user_info_ava.xml │ │ │ │ ├── fg_compose_attachment.xml │ │ │ │ ├── fg_segmented_button_container.xml │ │ │ │ ├── bg_m3_surface1.xml │ │ │ │ ├── bg_m3_surface2.xml │ │ │ │ ├── bg_m3_surface3.xml │ │ │ │ ├── fg_link_card_author_chip_ava.xml │ │ │ │ ├── bg_photo_viewer_bottom.xml │ │ │ │ ├── ic_boost.xml │ │ │ │ ├── ic_tab_home.xml │ │ │ │ ├── bg_ava_badge.xml │ │ │ │ ├── bg_timeline_gap.xml │ │ │ │ ├── ic_compose_cw.xml │ │ │ │ ├── ic_compose_emoji.xml │ │ │ │ ├── ic_help_selectable.xml │ │ │ │ ├── ic_tab_search.xml │ │ │ │ ├── bg_user_info.xml │ │ │ │ ├── ic_donation_monthly.xml │ │ │ │ ├── bg_status_action_centered.xml │ │ │ │ ├── ic_bookmark_20px_selector.xml │ │ │ │ ├── ic_compose_poll.xml │ │ │ │ ├── ic_star_selector.xml │ │ │ │ ├── bg_photo_viewer_action_centered.xml │ │ │ │ ├── bg_reported_stamp.xml │ │ │ │ ├── bg_spinner.xml │ │ │ │ ├── ic_boost_private.xml │ │ │ │ ├── ic_repeat_selector.xml │ │ │ │ ├── ic_tab_notifications.xml │ │ │ │ ├── bg_link_card_author.xml │ │ │ │ ├── bg_round_ripple.xml │ │ │ │ ├── bg_alert.xml │ │ │ │ ├── bg_m3_outlined_text_field_error_nopad.xml │ │ │ │ ├── bg_onboarding_panel.xml │ │ │ │ ├── bg_photo_viewer_action.xml │ │ │ │ ├── bg_status_action.xml │ │ │ │ ├── divider_inset_16dp.xml │ │ │ │ ├── bg_link_card_author_chip.xml │ │ │ │ ├── bg_status_header.xml │ │ │ │ ├── bg_rect_4dp_ripple.xml │ │ │ │ ├── ic_baseline_arrow_drop_down_18.xml │ │ │ │ ├── ic_play_24.xml │ │ │ │ ├── bg_button_m3_text.xml │ │ │ │ ├── bg_tabbar.xml │ │ │ │ ├── bg_button_m3_icon_label.xml │ │ │ │ ├── bg_button_m3_text_white.xml │ │ │ │ ├── bg_button_borderless_rounded.xml │ │ │ │ ├── ic_arrow_drop_down_24px.xml │ │ │ │ ├── bg_list_item_rounded.xml │ │ │ │ ├── ic_add_24px.xml │ │ │ │ ├── ic_baseline_check_18.xml │ │ │ │ ├── ic_drag_handle_24px.xml │ │ │ │ ├── ic_home_fill1_24px.xml │ │ │ │ ├── ic_pause_24.xml │ │ │ │ ├── ic_pause_48px.xml │ │ │ │ ├── bg_bottom_sheet.xml │ │ │ │ ├── bg_photo_viewer_toolbar_button.xml │ │ │ │ ├── ic_arrow_right_24px.xml │ │ │ │ ├── bg_custom_emoji.xml │ │ │ │ ├── bg_quote_post_remove.xml │ │ │ │ ├── edit_avatar_overlay.xml │ │ │ │ ├── ic_check_24px.xml │ │ │ │ ├── ic_play_arrow_48px.xml │ │ │ │ ├── tab_indicator_m3.xml │ │ │ │ ├── bg_button_m3_elevated.xml │ │ │ │ ├── bg_m3_outlined_text_field_error.xml │ │ │ │ ├── ic_check_20px.xml │ │ │ │ ├── ic_check_small_16px.xml │ │ │ │ ├── ic_check_wght700_24px.xml │ │ │ │ ├── ic_send_24px.xml │ │ │ │ ├── bg_m3_bottom_bar.xml │ │ │ │ ├── ic_home_24px.xml │ │ │ │ ├── ic_arrow_upward_20px.xml │ │ │ │ ├── ic_star_fill1_24px.xml │ │ │ │ ├── ic_baseline_close_24.xml │ │ │ │ ├── ic_actionmode_close.xml │ │ │ │ ├── bg_tabbar_tab_vector.xml │ │ │ │ ├── ic_close_20px.xml │ │ │ │ ├── bg_alert_button.xml │ │ │ │ ├── ic_boost_24px.xml │ │ │ │ ├── ic_tune_24px.xml │ │ │ │ ├── ic_unfold_more_24px.xml │ │ │ │ ├── ic_bookmark_fill1_20px.xml │ │ │ │ ├── ic_outline_email_24.xml │ │ │ │ ├── ic_repeat_24px.xml │ │ │ │ ├── bg_audio_play_button.xml │ │ │ │ ├── ic_repeat_fill1_24px.xml │ │ │ │ ├── ic_star_wght700grad200fill1_20px.xml │ │ │ │ ├── ic_reply_24px.xml │ │ │ │ ├── bg_bottom_sheet_handle.xml │ │ │ │ ├── ic_tag_24px.xml │ │ │ │ ├── ic_done_all_24px.xml │ │ │ │ ├── ic_gavel_24px.xml │ │ │ │ ├── bg_donation_banner.xml │ │ │ │ ├── ic_outline_link_24.xml │ │ │ │ ├── bg_popup.xml │ │ │ │ ├── fg_currency_input.xml │ │ │ │ ├── fg_link_card.xml │ │ │ │ ├── ic_logout_24px.xml │ │ │ │ ├── ic_reply_20px.xml │ │ │ │ ├── ic_repeat_wght700_20px.xml │ │ │ │ ├── bg_segmented_button.xml │ │ │ │ ├── ic_reply_wght700_20px.xml │ │ │ │ ├── ic_warning_fill1_24px.xml │ │ │ │ ├── ic_boost_fill_alt_24px.xml │ │ │ │ ├── ic_filter_alt_24px.xml │ │ │ │ ├── ic_insert_chart_fill1_24px.xml │ │ │ │ ├── ic_outline_person_24.xml │ │ │ │ ├── ic_star_24px.xml │ │ │ │ ├── bg_m3_filled_text_field_error.xml │ │ │ │ ├── ic_compose_foreground.xml │ │ │ │ ├── ic_domain_disabled_24px.xml │ │ │ │ ├── ic_repeat_20px.xml │ │ │ │ ├── ic_warning_24px.xml │ │ │ │ ├── bg_composer_visibility.xml │ │ │ │ ├── ic_star_20px.xml │ │ │ │ ├── ic_delete_24px.xml │ │ │ │ ├── m3_progress.xml │ │ │ │ ├── ic_repeat_wght700grad200fill1_20px.xml │ │ │ │ ├── ic_download_20px.xml │ │ │ │ ├── bg_button_m3_filled.xml │ │ │ │ ├── bg_handle_help.xml │ │ │ │ ├── ic_edit_24px.xml │ │ │ │ ├── bg_button_m3_filled_secondary.xml │ │ │ │ ├── ic_m3_cancel.xml │ │ │ │ ├── ic_unfold_more_wght600_15pt_8x20px.xml │ │ │ │ ├── bg_m3_outlined_text_field_nopad.xml │ │ │ │ ├── ic_mail_24px.xml │ │ │ │ ├── ic_notifications_fill1_24px.xml │ │ │ │ ├── bg_button_m3_tonal.xml │ │ │ │ ├── bg_button_m3_tonal_error.xml │ │ │ │ └── ic_open_in_browser_24px.xml │ │ │ ├── color │ │ │ │ ├── m3_primary_alpha11.xml │ │ │ │ ├── m3_primary_alpha5.xml │ │ │ │ ├── m3_primary_alpha8.xml │ │ │ │ ├── m3_white_overlay.xml │ │ │ │ ├── m3_on_surface_variant_alpha40.xml │ │ │ │ ├── m3_outline_overlay.xml │ │ │ │ ├── m3_primary_overlay.xml │ │ │ │ ├── m3_on_primary_overlay.xml │ │ │ │ ├── m3_on_surface_overlay.xml │ │ │ │ ├── m3_pressed_overlay.xml │ │ │ │ ├── m3_on_inverse_surface_overlay.xml │ │ │ │ ├── m3_on_surface_variant_overlay.xml │ │ │ │ ├── bg_compose_poll_style_inactive.xml │ │ │ │ ├── m3_on_secondary_container_overlay.xml │ │ │ │ ├── poll_option_checkbox.xml │ │ │ │ ├── m3_radiobutton_tint.xml │ │ │ │ ├── filter_chip_text.xml │ │ │ │ ├── selectable_icon_tint.xml │ │ │ │ ├── text_on_surface_disableable.xml │ │ │ │ ├── m3_outlined_text_field_label.xml │ │ │ │ ├── tab_bar_icon.xml │ │ │ │ ├── text_segmented_button.xml │ │ │ │ ├── button_text_m3_text.xml │ │ │ │ ├── action_bar_icons.xml │ │ │ │ ├── button_text_m3_filled.xml │ │ │ │ ├── button_text_m3_filled_secondary.xml │ │ │ │ ├── button_text_m3_tonal.xml │ │ │ │ ├── button_text_m3_tonal_error.xml │ │ │ │ └── compose_button.xml │ │ │ ├── values-night │ │ │ │ └── colors.xml │ │ │ ├── color-v31 │ │ │ │ ├── m3_sys_accent3_750.xml │ │ │ │ └── m3_sys_accent3_850.xml │ │ │ ├── layout │ │ │ │ ├── progress_bar.xml │ │ │ │ ├── alert_birth_date.xml │ │ │ │ ├── profile_qr_toolbar.xml │ │ │ │ ├── item_spinner.xml │ │ │ │ ├── item_list_header_simple.xml │ │ │ │ ├── large_title.xml │ │ │ │ ├── item_emoji_section.xml │ │ │ │ ├── item_generic_list.xml │ │ │ │ ├── alert_title.xml │ │ │ │ ├── item_autocomplete_hashtag.xml │ │ │ │ ├── expanded_title_medium.xml │ │ │ │ └── item_alert_single_choice_1line.xml │ │ │ ├── interpolator-v21 │ │ │ │ └── cubic_bezier_default.xml │ │ │ ├── menu │ │ │ │ ├── compose.xml │ │ │ │ ├── compose_edit.xml │ │ │ │ ├── profile_own.xml │ │ │ │ ├── settings_edit_filter.xml │ │ │ │ ├── compose_image_description.xml │ │ │ │ ├── boost_longtap.xml │ │ │ │ ├── settings_filter_words_action_mode.xml │ │ │ │ ├── selectable_list.xml │ │ │ │ ├── favorite_longtap.xml │ │ │ │ ├── home.xml │ │ │ │ ├── standalone_list_timeline.xml │ │ │ │ ├── notifications.xml │ │ │ │ └── notification_request.xml │ │ │ └── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ ├── ic_shortcut_compose.xml │ │ │ │ └── ic_shortcut_explore.xml │ │ ├── aidl │ │ │ └── com │ │ │ │ └── google │ │ │ │ └── android │ │ │ │ └── gms │ │ │ │ └── common │ │ │ │ ├── api │ │ │ │ ├── Status.aidl │ │ │ │ └── internal │ │ │ │ │ └── IStatusCallback.aidl │ │ │ │ ├── internal │ │ │ │ ├── GetServiceRequest.aidl │ │ │ │ ├── ConnectionInfo.aidl │ │ │ │ ├── IGmsServiceBroker.aidl │ │ │ │ └── IGmsCallbacks.aidl │ │ │ │ └── moduleinstall │ │ │ │ ├── ModuleInstallResponse.aidl │ │ │ │ ├── ModuleAvailabilityResponse.aidl │ │ │ │ ├── ModuleInstallStatusUpdate.aidl │ │ │ │ ├── internal │ │ │ │ ├── ApiFeatureRequest.aidl │ │ │ │ └── IModuleInstallStatusListener.aidl │ │ │ │ └── ModuleInstallIntentResponse.aidl │ │ ├── ic_launcher-playstore.png │ │ └── java │ │ │ ├── org │ │ │ └── joinmastodon │ │ │ │ └── android │ │ │ │ ├── api │ │ │ │ ├── ProgressListener.java │ │ │ │ ├── DatabaseRunnable.java │ │ │ │ ├── requests │ │ │ │ │ ├── lists │ │ │ │ │ │ ├── DeleteList.java │ │ │ │ │ │ └── GetLists.java │ │ │ │ │ ├── tags │ │ │ │ │ │ ├── GetTag.java │ │ │ │ │ │ ├── SetTagFollowed.java │ │ │ │ │ │ └── GetFollowedTags.java │ │ │ │ │ ├── instance │ │ │ │ │ │ ├── GetInstanceV1.java │ │ │ │ │ │ ├── GetCustomEmojis.java │ │ │ │ │ │ ├── GetInstanceV2.java │ │ │ │ │ │ └── GetInstanceExtendedDescription.java │ │ │ │ │ ├── statuses │ │ │ │ │ │ ├── DeleteStatus.java │ │ │ │ │ │ ├── GetStatusByID.java │ │ │ │ │ │ ├── EditStatus.java │ │ │ │ │ │ ├── SetStatusPinned.java │ │ │ │ │ │ ├── RevokeStatusQuote.java │ │ │ │ │ │ ├── SetStatusReblogged.java │ │ │ │ │ │ ├── SetStatusBookmarked.java │ │ │ │ │ │ ├── SetStatusFavorited.java │ │ │ │ │ │ ├── SetStatusConversationMuted.java │ │ │ │ │ │ ├── TranslateStatus.java │ │ │ │ │ │ └── GetStatusesByIDs.java │ │ │ │ │ ├── accounts │ │ │ │ │ │ ├── GetAccountByID.java │ │ │ │ │ │ ├── GetOwnAccount.java │ │ │ │ │ │ ├── GetPreferences.java │ │ │ │ │ │ ├── RejectFollowRequest.java │ │ │ │ │ │ ├── SetAccountMuted.java │ │ │ │ │ │ ├── AcceptFollowRequest.java │ │ │ │ │ │ ├── SetAccountBlocked.java │ │ │ │ │ │ ├── GetAccountLists.java │ │ │ │ │ │ ├── GetAccountFeaturedHashtags.java │ │ │ │ │ │ ├── GetDomainBlockPreview.java │ │ │ │ │ │ ├── SetDomainBlocked.java │ │ │ │ │ │ └── ResendConfirmationEmail.java │ │ │ │ │ ├── filters │ │ │ │ │ │ ├── DeleteFilter.java │ │ │ │ │ │ ├── GetLegacyFilters.java │ │ │ │ │ │ ├── GetFilters.java │ │ │ │ │ │ └── KeywordAttribute.java │ │ │ │ │ ├── notifications │ │ │ │ │ │ ├── GetNotificationByID.java │ │ │ │ │ │ ├── GetNotificationsPolicy.java │ │ │ │ │ │ ├── RespondToNotificationRequest.java │ │ │ │ │ │ ├── SetNotificationsPolicy.java │ │ │ │ │ │ └── GetNotificationRequests.java │ │ │ │ │ ├── markers │ │ │ │ │ │ └── GetMarkers.java │ │ │ │ │ └── trends │ │ │ │ │ │ ├── GetTrendingHashtags.java │ │ │ │ │ │ └── GetTrendingLinks.java │ │ │ │ ├── ResultlessMastodonAPIRequest.java │ │ │ │ ├── RequiredField.java │ │ │ │ ├── AllFieldsAreRequired.java │ │ │ │ ├── ObjectValidationException.java │ │ │ │ ├── WrapperRequest.java │ │ │ │ ├── MastodonDetailedErrorResponse.java │ │ │ │ └── session │ │ │ │ │ └── AccountActivationInfo.java │ │ │ │ ├── ui │ │ │ │ ├── views │ │ │ │ │ └── ChildDrawingOrderCallback.java │ │ │ │ ├── text │ │ │ │ │ ├── CodeBlockSpan.java │ │ │ │ │ ├── MonospaceSpan.java │ │ │ │ │ ├── DeleteWhenCopiedSpan.java │ │ │ │ │ ├── ComposeAutocompleteSpan.java │ │ │ │ │ ├── ComposeHashtagOrMentionSpan.java │ │ │ │ │ └── NonColoredLinkSpan.java │ │ │ │ ├── ColorContrastMode.java │ │ │ │ ├── SimpleViewHolder.java │ │ │ │ ├── photoviewer │ │ │ │ │ └── PhotoViewerHost.java │ │ │ │ ├── viewholders │ │ │ │ │ └── SimpleListItemViewHolder.java │ │ │ │ └── tabs │ │ │ │ │ └── MaterialResources.java │ │ │ │ ├── events │ │ │ │ ├── AccountLoggedOutEvent.java │ │ │ │ ├── EmojiUpdatedEvent.java │ │ │ │ ├── StatusUpdatedEvent.java │ │ │ │ ├── StatusDisplaySettingsChangedEvent.java │ │ │ │ ├── DismissDonationCampaignBannerEvent.java │ │ │ │ ├── FinishReportFragmentsEvent.java │ │ │ │ ├── StatusDeletedEvent.java │ │ │ │ ├── ListDeletedEvent.java │ │ │ │ ├── PollUpdatedEvent.java │ │ │ │ ├── NotificationRequestRespondedEvent.java │ │ │ │ ├── SettingsFilterDeletedEvent.java │ │ │ │ ├── FinishListCreationFragmentEvent.java │ │ │ │ ├── SelfUpdateStateChangedEvent.java │ │ │ │ ├── ListCreatedEvent.java │ │ │ │ ├── ListUpdatedEvent.java │ │ │ │ ├── StatusCreatedEvent.java │ │ │ │ ├── SettingsFilterCreatedOrUpdatedEvent.java │ │ │ │ ├── AccountRemovedFromListEvent.java │ │ │ │ ├── NotificationsMarkerUpdatedEvent.java │ │ │ │ ├── RemoveAccountPostsEvent.java │ │ │ │ └── AccountAddedToListEvent.java │ │ │ │ ├── model │ │ │ │ ├── FilterAction.java │ │ │ │ ├── PaginatedResponse.java │ │ │ │ ├── FilterStatus.java │ │ │ │ ├── StatusQuotePolicy.java │ │ │ │ ├── EmojiCategory.java │ │ │ │ ├── ExpandMedia.java │ │ │ │ ├── TimelineMarkers.java │ │ │ │ ├── DisplayItemsParent.java │ │ │ │ ├── ReportReason.java │ │ │ │ ├── catalog │ │ │ │ │ ├── CatalogDefaultInstance.java │ │ │ │ │ └── CatalogCategory.java │ │ │ │ ├── CacheablePaginatedResponse.java │ │ │ │ ├── NotificationsPolicy.java │ │ │ │ ├── FollowSuggestion.java │ │ │ │ ├── AsyncRefresh.java │ │ │ │ ├── History.java │ │ │ │ ├── Marker.java │ │ │ │ ├── FilterKeyword.java │ │ │ │ ├── viewmodel │ │ │ │ │ └── SectionHeaderListItem.java │ │ │ │ ├── FamiliarFollowers.java │ │ │ │ └── FilterResult.java │ │ │ │ ├── fragments │ │ │ │ ├── AssistContentProviderFragment.java │ │ │ │ ├── report │ │ │ │ │ └── ChoiceItem.java │ │ │ │ └── account_list │ │ │ │ │ └── StatusRelatedAccountListFragment.java │ │ │ │ ├── E.java │ │ │ │ └── utils │ │ │ │ └── ObjectIdComparator.java │ │ │ └── com │ │ │ └── google │ │ │ └── android │ │ │ └── gms │ │ │ └── common │ │ │ ├── api │ │ │ └── Scope.java │ │ │ ├── Feature.java │ │ │ ├── moduleinstall │ │ │ ├── ModuleInstallIntentResponse.java │ │ │ └── ModuleAvailabilityResponse.java │ │ │ └── internal │ │ │ └── ConnectionInfo.java │ └── androidTest │ │ └── assets │ │ └── IMG_1010.jpg ├── .gitignore └── ci_signing.gradle ├── img └── google-play-badge.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle ├── updateChangelog.sh └── crowdin.yml /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Mastodon -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/default.txt: -------------------------------------------------------------------------------- 1 | 147.txt -------------------------------------------------------------------------------- /fastlane/metadata/android/ja/short_description.txt: -------------------------------------------------------------------------------- 1 | 話題が生まれる場所 -------------------------------------------------------------------------------- /fastlane/metadata/android/ko/short_description.txt: -------------------------------------------------------------------------------- 1 | 대화가 이루어지는 곳 -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-CN/short_description.txt: -------------------------------------------------------------------------------- 1 | 对话发生的场所 -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/hy/short_description.txt: -------------------------------------------------------------------------------- 1 | Որտեղ շփվում են -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-TW/short_description.txt: -------------------------------------------------------------------------------- 1 | 談天說地閒話家常的好所在 -------------------------------------------------------------------------------- /mastodon/src/main/res/resources.properties: -------------------------------------------------------------------------------- 1 | unqualifiedResLocale=en-US -------------------------------------------------------------------------------- /fastlane/metadata/android/be/short_description.txt: -------------------------------------------------------------------------------- 1 | Дзе адбываюцца зносіны -------------------------------------------------------------------------------- /fastlane/metadata/android/el/short_description.txt: -------------------------------------------------------------------------------- 1 | Εκεί που συζητάνε όλοι -------------------------------------------------------------------------------- /fastlane/metadata/android/et/short_description.txt: -------------------------------------------------------------------------------- 1 | Vestlused toimuvad siin -------------------------------------------------------------------------------- /fastlane/metadata/android/fy/short_description.txt: -------------------------------------------------------------------------------- 1 | Dêr’t petearen ûntstean -------------------------------------------------------------------------------- /fastlane/metadata/android/he/short_description.txt: -------------------------------------------------------------------------------- 1 | המקום בו השיחות מתרחשות -------------------------------------------------------------------------------- /fastlane/metadata/android/lt/short_description.txt: -------------------------------------------------------------------------------- 1 | Kur vyksta pokalbiai -------------------------------------------------------------------------------- /fastlane/metadata/android/ru/short_description.txt: -------------------------------------------------------------------------------- 1 | Где происходят беседы -------------------------------------------------------------------------------- /fastlane/metadata/android/sl/short_description.txt: -------------------------------------------------------------------------------- 1 | Kjer potekajo pogovori -------------------------------------------------------------------------------- /fastlane/metadata/android/sv/short_description.txt: -------------------------------------------------------------------------------- 1 | Där konversationer sker -------------------------------------------------------------------------------- /fastlane/metadata/android/th/short_description.txt: -------------------------------------------------------------------------------- 1 | ที่ซึ่งการสนทนาเกิดขึ้น -------------------------------------------------------------------------------- /fastlane/metadata/android/uk/short_description.txt: -------------------------------------------------------------------------------- 1 | Де відбуваються розмови -------------------------------------------------------------------------------- /fastlane/metadata/android/vi/short_description.txt: -------------------------------------------------------------------------------- 1 | Nơi thảo luận thật sự -------------------------------------------------------------------------------- /fastlane/metadata/android/ar/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/bn/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/bs/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/cs/short_description.txt: -------------------------------------------------------------------------------- 1 | Tam, kde vznikají konverzace -------------------------------------------------------------------------------- /fastlane/metadata/android/cy/short_description.txt: -------------------------------------------------------------------------------- 1 | Lle mae sgyrsiau yn digwydd -------------------------------------------------------------------------------- /fastlane/metadata/android/da/short_description.txt: -------------------------------------------------------------------------------- 1 | Hvor samtaler finder sted -------------------------------------------------------------------------------- /fastlane/metadata/android/fa/short_description.txt: -------------------------------------------------------------------------------- 1 | کجا گفتگوها اتفاق می‌افتد -------------------------------------------------------------------------------- /fastlane/metadata/android/fil/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ga/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/gd/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/gl/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/hi/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/hr/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ia/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ig/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ka/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/kab/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/my/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/nl/short_description.txt: -------------------------------------------------------------------------------- 1 | Waar gesprekken ontstaan -------------------------------------------------------------------------------- /fastlane/metadata/android/no/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/oc/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/pl/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/pt/short_description.txt: -------------------------------------------------------------------------------- 1 | Onde as conversas acontecem -------------------------------------------------------------------------------- /fastlane/metadata/android/ro/short_description.txt: -------------------------------------------------------------------------------- 1 | Unde au loc conversațiile -------------------------------------------------------------------------------- /fastlane/metadata/android/si/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/sk/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/ur/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/de/short_description.txt: -------------------------------------------------------------------------------- 1 | Wo Unterhaltungen stattfinden -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Where conversations happen -------------------------------------------------------------------------------- /fastlane/metadata/android/es/short_description.txt: -------------------------------------------------------------------------------- 1 | Donde las conversaciones ocurren -------------------------------------------------------------------------------- /fastlane/metadata/android/fi/short_description.txt: -------------------------------------------------------------------------------- 1 | Keskustelut tapahtuvat täällä -------------------------------------------------------------------------------- /fastlane/metadata/android/hu/short_description.txt: -------------------------------------------------------------------------------- 1 | Ahol a beszélgetések történnek -------------------------------------------------------------------------------- /fastlane/metadata/android/id/short_description.txt: -------------------------------------------------------------------------------- 1 | Tempat di mana percakapan terjadi -------------------------------------------------------------------------------- /fastlane/metadata/android/is/short_description.txt: -------------------------------------------------------------------------------- 1 | Þar sem samræður eiga sér stað -------------------------------------------------------------------------------- /fastlane/metadata/android/it/short_description.txt: -------------------------------------------------------------------------------- 1 | Dove avvengono le conversazioni -------------------------------------------------------------------------------- /fastlane/metadata/android/pt-BR/short_description.txt: -------------------------------------------------------------------------------- 1 | Onde as conversas acontecem -------------------------------------------------------------------------------- /fastlane/metadata/android/tr/short_description.txt: -------------------------------------------------------------------------------- 1 | Konuşmaların gerçekleştiği yer -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/140.txt: -------------------------------------------------------------------------------- 1 | - Bug fixes and minor improvements -------------------------------------------------------------------------------- /fastlane/metadata/android/eu/short_description.txt: -------------------------------------------------------------------------------- 1 | Elkarrizketak gertatzen diren lekua -------------------------------------------------------------------------------- /fastlane/metadata/android/fr/short_description.txt: -------------------------------------------------------------------------------- 1 | Là où les discussions se déroulent -------------------------------------------------------------------------------- /mastodon/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /release 3 | /debug 4 | *.apk 5 | output-metadata.json 6 | -------------------------------------------------------------------------------- /img/google-play-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/img/google-play-badge.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/102.txt: -------------------------------------------------------------------------------- 1 | - Updated look for link previews and the News tab 2 | - Bug fixes and improvements -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/138.txt: -------------------------------------------------------------------------------- 1 | - You can now see which post you're replying to 2 | - Bug fixes and minor improvements -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/api/Status.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.api; 2 | 3 | parcelable Status; -------------------------------------------------------------------------------- /mastodon/src/androidTest/assets/IMG_1010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/androidTest/assets/IMG_1010.jpg -------------------------------------------------------------------------------- /mastodon/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/poof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/poof.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /mastodon/src/main/res/values/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 100 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mastodon/src/main/res/values-hdpi/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 150 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-tvdpi/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 133 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-xhdpi/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 200 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-xxhdpi/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 300 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-xxxhdpi/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 400 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-xxxhdpi/scribble.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-xxxhdpi/scribble.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mastodon/src/main/res/xml/fileprovider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/featureGraphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/featureGraphic.png -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | parcelable GetServiceRequest; 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/splash_art_layer0.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/splash_art_layer0.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/splash_art_layer1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/splash_art_layer1.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/splash_art_layer2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/splash_art_layer2.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/splash_art_layer3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/splash_art_layer3.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/splash_art_layer4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/splash_art_layer4.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-xhdpi/confirm_email_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-xhdpi/confirm_email_art.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png -------------------------------------------------------------------------------- /mastodon/src/main/res/anim/no_op_300ms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-xxxhdpi/confirm_email_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-xxxhdpi/confirm_email_art.webp -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/ModuleInstallResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | parcelable ModuleInstallResponse; 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable-nodpi/donation_successful_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/mastodon-android/master/mastodon/src/main/res/drawable-nodpi/donation_successful_art.webp -------------------------------------------------------------------------------- /mastodon/src/main/res/values-v33/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0.50 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-v27/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/m3_sys_light_background 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/147.txt: -------------------------------------------------------------------------------- 1 | - You can now quote other people’s posts (if they permit it) when connected to a server that supports it 2 | - Other minor fixes and improvements 3 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/ModuleAvailabilityResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | parcelable ModuleAvailabilityResponse; 4 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/ModuleInstallStatusUpdate.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | parcelable ModuleInstallStatusUpdate; 4 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/internal/ApiFeatureRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall.internal; 2 | 3 | parcelable ApiFeatureRequest; 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | local.properties 11 | *.jks 12 | /fastlane/report.xml 13 | -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one 2 | package_name("org.joinmastodon.android") # e.g. com.krausefx.app 3 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/ModuleInstallIntentResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | parcelable ModuleInstallIntentResponse; 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/143.txt: -------------------------------------------------------------------------------- 1 | - You can now see quote posts in the app, in preparation for a future Mastodon release. No way to make them yet, sorry! 2 | - Various fixes and improvements 3 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/ProgressListener.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | public interface ProgressListener{ 4 | void onProgress(long transferred, long total); 5 | } 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/image_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/white_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/133.txt: -------------------------------------------------------------------------------- 1 | - Fixed custom emojis not loading under some configurations 2 | - Fixed some minor crashes 3 | - The app now sends org.joinmastodon.android as referrer to websites opened from the app -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/rect_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/88.txt: -------------------------------------------------------------------------------- 1 | - QR code scanner can now be accessed from the explore page 2 | - You can now pin posts to your profile 3 | - Fixed featured hashtags on profiles not showing the profile's own posts exclusively -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/empty_8dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/rect_12dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/rect_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_primary_alpha11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_primary_alpha5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_primary_alpha8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/86.txt: -------------------------------------------------------------------------------- 1 | - You can now easily share and scan QR codes to quickly find each other 2 | - We've updated the look of the tab bar to better match current platform guidelines 3 | - Various minor usability improvements -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_tabbar_badge.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000 4 | @color/m3_sys_dark_primary 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_white_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_image_alt_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_profile_follows_you.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/135.txt: -------------------------------------------------------------------------------- 1 | - You can now accept or reject follow requests from the notifications 2 | - System notifications will now be dismissed when you open the notifications screen in the app 3 | - Various small fixes and improvements -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/views/ChildDrawingOrderCallback.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.views; 2 | 3 | public interface ChildDrawingOrderCallback{ 4 | int getChildDrawingOrder(int childCount, int drawingPosition); 5 | } 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_onboarding_avatar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/divider_vertical_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color-v31/m3_sys_accent3_750.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color-v31/m3_sys_accent3_850.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_surface_variant_alpha40.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_outline_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_primary_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/progress_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_primary_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_surface_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/divider_vertical_variant_1dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_pressed_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/profile_ava_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | dependencyResolutionManagement { 2 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 3 | repositories { 4 | google() 5 | mavenCentral() 6 | mavenLocal() 7 | } 8 | } 9 | rootProject.name = "Mastodon" 10 | include ':mastodon' 11 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/api/internal/IStatusCallback.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.api.internal; 2 | 3 | import com.google.android.gms.common.api.Status; 4 | 5 | interface IStatusCallback { 6 | void onResult(in Status status); 7 | } 8 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/internal/ConnectionInfo.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal; 7 | parcelable ConnectionInfo; 8 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/AccountLoggedOutEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class AccountLoggedOutEvent{ 4 | public String id; 5 | 6 | public AccountLoggedOutEvent(String id){ 7 | this.id=id; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_inverse_surface_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_surface_variant_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_inline_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_settings_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_onboarding_ava.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_user_info_ava.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/bg_compose_poll_style_inactive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_compose_attachment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_segmented_button_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/interpolator-v21/cubic_bezier_default.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /updateChangelog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | version=$(grep 'versionCode' mastodon/build.gradle | cut -w -f 3) 4 | pushd "fastlane/metadata/android/en-US/changelogs" 5 | newFile="$version.txt" 6 | vim "$newFile" || exit 1 7 | rm default.txt 8 | ln -s "$newFile" default.txt 9 | popd 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jun 03 23:40:27 MSK 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_on_secondary_container_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_surface1.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_surface2.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_surface3.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/compose.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/110.txt: -------------------------------------------------------------------------------- 1 | - Added option to donate to Mastodon in-app when connected to our flagship server. This option will not appear when using a 3rd party server to avoid confusion. Please check if the 3rd party server you're using accepts donations through their website. -------------------------------------------------------------------------------- /mastodon/src/main/res/color/poll_option_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_link_card_author_chip_ava.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/compose_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/profile_own.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FilterAction.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | public enum FilterAction{ 6 | @SerializedName("warn") 7 | WARN, 8 | @SerializedName("hide") 9 | HIDE 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_radiobutton_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/settings_edit_filter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/fragments/AssistContentProviderFragment.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.fragments; 2 | 3 | import android.app.assist.AssistContent; 4 | 5 | public interface AssistContentProviderFragment{ 6 | void onProvideAssistContent(AssistContent content); 7 | } 8 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/CodeBlockSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | import android.content.Context; 4 | 5 | public class CodeBlockSpan extends BaseMonospaceSpan{ 6 | public CodeBlockSpan(Context context){ 7 | super(context); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/MonospaceSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | import android.content.Context; 4 | 5 | public class MonospaceSpan extends BaseMonospaceSpan{ 6 | public MonospaceSpan(Context context){ 7 | super(context); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/filter_chip_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/selectable_icon_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/text_on_surface_disableable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/compose_image_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/116.txt: -------------------------------------------------------------------------------- 1 | - We're rolling out grouped notifications for servers that support the feature 2 | - You can now click "show results" on polls without having to submit a vote 3 | - You will now see lines connecting reply chains in threads 4 | - Bug fixes and improvements, obviously! -------------------------------------------------------------------------------- /mastodon/src/main/res/color/m3_outlined_text_field_label.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/tab_bar_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/text_segmented_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/boost_longtap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/EmojiUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class EmojiUpdatedEvent{ 4 | public String instanceDomain; 5 | 6 | public EmojiUpdatedEvent(String instanceDomain){ 7 | this.instanceDomain=instanceDomain; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/anim/fade_out_fast.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/button_text_m3_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_photo_viewer_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_boost.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_tab_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/settings_filter_words_action_mode.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /mastodon/src/main/res/values/urls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | https://github.com/mastodon/mastodon-android 4 | https://joinmastodon.org/privacy-policy 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/action_bar_icons.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/button_text_m3_filled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_ava_badge.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_timeline_gap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_compose_cw.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_compose_emoji.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_help_selectable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_tab_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/selectable_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/button_text_m3_filled_secondary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/button_text_m3_tonal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/button_text_m3_tonal_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_user_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_donation_monthly.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/PaginatedResponse.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | public class PaginatedResponse{ 4 | public T items; 5 | public String maxID; 6 | 7 | public PaginatedResponse(T items, String maxID){ 8 | this.items=items; 9 | this.maxID=maxID; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_status_action_centered.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_bookmark_20px_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_compose_poll.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_star_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/DatabaseRunnable.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import android.database.sqlite.SQLiteDatabase; 4 | 5 | import java.io.IOException; 6 | 7 | @FunctionalInterface 8 | public interface DatabaseRunnable{ 9 | void run(SQLiteDatabase db) throws IOException; 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_photo_viewer_action_centered.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_reported_stamp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_boost_private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_tab_notifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/StatusUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.Status; 4 | 5 | public class StatusUpdatedEvent{ 6 | public Status status; 7 | 8 | public StatusUpdatedEvent(Status status){ 9 | this.status=status; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_link_card_author.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/StatusDisplaySettingsChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class StatusDisplaySettingsChangedEvent{ 4 | public final String accountID; 5 | 6 | public StatusDisplaySettingsChangedEvent(String accountID){ 7 | this.accountID=accountID; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/DismissDonationCampaignBannerEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class DismissDonationCampaignBannerEvent{ 4 | public final String campaignID; 5 | 6 | public DismissDonationCampaignBannerEvent(String campaignID){ 7 | this.campaignID=campaignID; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/FinishReportFragmentsEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class FinishReportFragmentsEvent{ 4 | public final String reportAccountID; 5 | 6 | public FinishReportFragmentsEvent(String reportAccountID){ 7 | this.reportAccountID=reportAccountID; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/DeleteWhenCopiedSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | /** 4 | * A span to mark character ranges that should be deleted when copied to the clipboard. 5 | * Works with {@link org.joinmastodon.android.ui.views.LinkedTextView}. 6 | */ 7 | public class DeleteWhenCopiedSpan{ 8 | } 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_round_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_alert.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_outlined_text_field_error_nopad.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_onboarding_panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /mastodon/src/main/res/values/strings.xml 3 | translation: /mastodon/src/main/res/values-%android_code%/strings.xml 4 | - source: /fastlane/metadata/android/en-US/*.txt 5 | translation: /fastlane/metadata/android/%two_letters_code%/%original_file_name% 6 | ignore: 7 | - /fastlane/metadata/android/en-US/title.txt 8 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/StatusDeletedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class StatusDeletedEvent{ 4 | public final String id; 5 | public final String accountID; 6 | 7 | public StatusDeletedEvent(String id, String accountID){ 8 | this.id=id; 9 | this.accountID=accountID; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/fragments/report/ChoiceItem.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.fragments.report; 2 | 3 | class ChoiceItem{ 4 | public String title, subtitle, id; 5 | 6 | public ChoiceItem(String title, String subtitle, String id){ 7 | this.title=title; 8 | this.subtitle=subtitle; 9 | this.id=id; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_photo_viewer_action.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_status_action.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/divider_inset_16dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FilterStatus.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.parceler.Parcel; 5 | 6 | @AllFieldsAreRequired 7 | @Parcel 8 | public class FilterStatus extends BaseModel{ 9 | public String id; 10 | public String statusId; 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/StatusQuotePolicy.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | public enum StatusQuotePolicy{ 6 | @SerializedName("public") 7 | PUBLIC, 8 | @SerializedName("followers") 9 | FOLLOWERS, 10 | @SerializedName("nobody") 11 | NOBODY; 12 | } 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_link_card_author_chip.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_status_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/alert_birth_date.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/ListDeletedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class ListDeletedEvent{ 4 | public final String accountID; 5 | public final String listID; 6 | 7 | public ListDeletedEvent(String accountID, String listID){ 8 | this.accountID=accountID; 9 | this.listID=listID; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/ComposeAutocompleteSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | import android.text.TextPaint; 4 | import android.text.style.CharacterStyle; 5 | 6 | public class ComposeAutocompleteSpan extends CharacterStyle{ 7 | @Override 8 | public void updateDrawState(TextPaint tp){ 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_rect_4dp_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_baseline_arrow_drop_down_18.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_play_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/EmojiCategory.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import java.util.List; 4 | 5 | public class EmojiCategory{ 6 | public String title; 7 | public List emojis; 8 | 9 | public EmojiCategory(String title, List emojis){ 10 | this.title=title; 11 | this.emojis=emojis; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/ExpandMedia.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | public enum ExpandMedia { 6 | @SerializedName("default") 7 | DEFAULT, 8 | @SerializedName("show_all") 9 | SHOW_ALL, 10 | @SerializedName("hide_all") 11 | HIDE_ALL; 12 | } 13 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/TimelineMarkers.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | public class TimelineMarkers{ 4 | public Marker home, notifications; 5 | 6 | @Override 7 | public String toString(){ 8 | return "TimelineMarkers{"+ 9 | "home="+home+ 10 | ", notifications="+notifications+ 11 | '}'; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_tabbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/lists/DeleteList.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.lists; 2 | 3 | import org.joinmastodon.android.api.ResultlessMastodonAPIRequest; 4 | 5 | public class DeleteList extends ResultlessMastodonAPIRequest{ 6 | public DeleteList(String id){ 7 | super(HttpMethod.DELETE, "/lists/"+id); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_icon_label.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_text_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/profile_qr_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_borderless_rounded.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_arrow_drop_down_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/ColorContrastMode.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui; 2 | 3 | public enum ColorContrastMode{ 4 | DEFAULT, 5 | MEDIUM, 6 | HIGH; 7 | 8 | public static ColorContrastMode fromContrastValue(float value){ 9 | if(value>0.75f) 10 | return HIGH; 11 | if(value>0.25f) 12 | return MEDIUM; 13 | return DEFAULT; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/moduleinstall/internal/IModuleInstallStatusListener.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall.internal; 2 | 3 | import com.google.android.gms.common.moduleinstall.ModuleInstallStatusUpdate; 4 | 5 | interface IModuleInstallStatusListener { 6 | void onModuleInstallStatusUpdate(in ModuleInstallStatusUpdate statusUpdate) = 0; 7 | } 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_list_item_rounded.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_add_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_baseline_check_18.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_drag_handle_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_home_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_pause_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_pause_48px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/PollUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.Poll; 4 | 5 | public class PollUpdatedEvent{ 6 | public String accountID; 7 | public Poll poll; 8 | 9 | public PollUpdatedEvent(String accountID, Poll poll){ 10 | this.accountID=accountID; 11 | this.poll=poll; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/DisplayItemsParent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | /** 4 | * A model object from which {@link org.joinmastodon.android.ui.displayitems.StatusDisplayItem}s can be generated. 5 | */ 6 | public interface DisplayItemsParent{ 7 | String getID(); 8 | 9 | default String getAccountID(){ 10 | return null; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/color/compose_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/favorite_longtap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/ResultlessMastodonAPIRequest.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | public abstract class ResultlessMastodonAPIRequest extends MastodonAPIRequest{ 6 | public ResultlessMastodonAPIRequest(HttpMethod method, String path){ 7 | super(method, path, (Class)null); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/NotificationRequestRespondedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class NotificationRequestRespondedEvent{ 4 | public final String accountID, requestID; 5 | 6 | public NotificationRequestRespondedEvent(String accountID, String requestID){ 7 | this.accountID=accountID; 8 | this.requestID=requestID; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_bottom_sheet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_photo_viewer_toolbar_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/SettingsFilterDeletedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class SettingsFilterDeletedEvent{ 4 | public final String accountID; 5 | public final String filterID; 6 | 7 | public SettingsFilterDeletedEvent(String accountID, String filterID){ 8 | this.accountID=accountID; 9 | this.filterID=filterID; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/ReportReason.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | public enum ReportReason{ 6 | PERSONAL, 7 | @SerializedName("spam") 8 | SPAM, 9 | @SerializedName("legal") 10 | LEGAL, 11 | @SerializedName("violation") 12 | VIOLATION, 13 | @SerializedName("other") 14 | OTHER 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/catalog/CatalogDefaultInstance.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model.catalog; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.joinmastodon.android.model.BaseModel; 5 | 6 | @AllFieldsAreRequired 7 | public class CatalogDefaultInstance extends BaseModel{ 8 | public String domain; 9 | public float weight; 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/SimpleViewHolder.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui; 2 | 3 | import android.view.View; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.recyclerview.widget.RecyclerView; 7 | 8 | public class SimpleViewHolder extends RecyclerView.ViewHolder{ 9 | public SimpleViewHolder(@NonNull View itemView){ 10 | super(itemView); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/RequiredField.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.FIELD) 10 | public @interface RequiredField{ 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/FinishListCreationFragmentEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class FinishListCreationFragmentEvent{ 4 | public final String accountID; 5 | public final String listID; 6 | 7 | public FinishListCreationFragmentEvent(String accountID, String listID){ 8 | this.accountID=accountID; 9 | this.listID=listID; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_arrow_right_24px.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/tags/GetTag.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.tags; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Hashtag; 5 | 6 | public class GetTag extends MastodonAPIRequest{ 7 | public GetTag(String tag){ 8 | super(HttpMethod.GET, "/tags/"+tag, Hashtag.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/AllFieldsAreRequired.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.TYPE) 10 | public @interface AllFieldsAreRequired{ 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/SelfUpdateStateChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.updater.GithubSelfUpdater; 4 | 5 | public class SelfUpdateStateChangedEvent{ 6 | public final GithubSelfUpdater.UpdateState state; 7 | 8 | public SelfUpdateStateChangedEvent(GithubSelfUpdater.UpdateState state){ 9 | this.state=state; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_custom_emoji.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_quote_post_remove.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/edit_avatar_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_check_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_play_arrow_48px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/tab_indicator_m3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import android.os.Bundle; 4 | 5 | import com.google.android.gms.common.internal.IGmsCallbacks; 6 | import com.google.android.gms.common.internal.GetServiceRequest; 7 | 8 | interface IGmsServiceBroker { 9 | void getService(IGmsCallbacks callback, in GetServiceRequest request) = 45; 10 | } -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/ListCreatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.FollowList; 4 | 5 | public class ListCreatedEvent{ 6 | public final String accountID; 7 | public final FollowList list; 8 | 9 | public ListCreatedEvent(String accountID, FollowList list){ 10 | this.accountID=accountID; 11 | this.list=list; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/ListUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.FollowList; 4 | 5 | public class ListUpdatedEvent{ 6 | public final String accountID; 7 | public final FollowList list; 8 | 9 | public ListUpdatedEvent(String accountID, FollowList list){ 10 | this.accountID=accountID; 11 | this.list=list; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_elevated.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_outlined_text_field_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_check_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_check_small_16px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_check_wght700_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_send_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/StatusCreatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.Status; 4 | 5 | public class StatusCreatedEvent{ 6 | public final Status status; 7 | public final String accountID; 8 | 9 | public StatusCreatedEvent(Status status, String accountID){ 10 | this.status=status; 11 | this.accountID=accountID; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/photoviewer/PhotoViewerHost.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.photoviewer; 2 | 3 | import org.joinmastodon.android.model.Status; 4 | import org.joinmastodon.android.ui.displayitems.MediaGridStatusDisplayItem; 5 | 6 | public interface PhotoViewerHost{ 7 | void openPhotoViewer(String parentID, Status status, int attachmentIndex, MediaGridStatusDisplayItem.Holder gridHolder); 8 | } 9 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_bottom_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_home_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_arrow_upward_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_star_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/instance/GetInstanceV1.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.instance; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.InstanceV1; 5 | 6 | public class GetInstanceV1 extends MastodonAPIRequest{ 7 | public GetInstanceV1(){ 8 | super(HttpMethod.GET, "/instance", InstanceV1.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/DeleteStatus.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class DeleteStatus extends MastodonAPIRequest{ 7 | public DeleteStatus(String id){ 8 | super(HttpMethod.DELETE, "/statuses/"+id, Status.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/GetStatusByID.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class GetStatusByID extends MastodonAPIRequest{ 7 | public GetStatusByID(String id){ 8 | super(HttpMethod.GET, "/statuses/"+id, Status.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_baseline_close_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetAccountByID.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Account; 5 | 6 | public class GetAccountByID extends MastodonAPIRequest{ 7 | public GetAccountByID(String id){ 8 | super(HttpMethod.GET, "/accounts/"+id, Account.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetOwnAccount.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Account; 5 | 6 | public class GetOwnAccount extends MastodonAPIRequest{ 7 | public GetOwnAccount(){ 8 | super(HttpMethod.GET, "/accounts/verify_credentials", Account.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_actionmode_close.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/anim/fragment_enter.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/anim/fragment_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetPreferences.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Preferences; 5 | 6 | public class GetPreferences extends MastodonAPIRequest { 7 | public GetPreferences(){ 8 | super(HttpMethod.GET, "/preferences", Preferences.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_tabbar_tab_vector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_close_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/com/google/android/gms/common/api/Scope.java: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.api; 2 | 3 | import org.microg.safeparcel.AutoSafeParcelable; 4 | import org.microg.safeparcel.SafeParceled; 5 | 6 | public class Scope extends AutoSafeParcelable{ 7 | @SafeParceled(1) 8 | public int versionCode=1; 9 | @SafeParceled(2) 10 | public String scopeUri; 11 | 12 | public static final Creator CREATOR=new AutoCreator<>(Scope.class); 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_alert_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_boost_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_tune_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_unfold_more_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_bookmark_fill1_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/filters/DeleteFilter.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.filters; 2 | 3 | import org.joinmastodon.android.api.ResultlessMastodonAPIRequest; 4 | 5 | public class DeleteFilter extends ResultlessMastodonAPIRequest{ 6 | public DeleteFilter(String id){ 7 | super(HttpMethod.DELETE, "/filters/"+id); 8 | } 9 | 10 | @Override 11 | protected String getPathPrefix(){ 12 | return "/api/v2"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/SettingsFilterCreatedOrUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.Filter; 4 | 5 | public class SettingsFilterCreatedOrUpdatedEvent{ 6 | public final String accountID; 7 | public final Filter filter; 8 | 9 | public SettingsFilterCreatedOrUpdatedEvent(String accountID, Filter filter){ 10 | this.accountID=accountID; 11 | this.filter=filter; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/CacheablePaginatedResponse.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | public class CacheablePaginatedResponse extends PaginatedResponse{ 4 | private final boolean fromCache; 5 | 6 | public CacheablePaginatedResponse(T items, String maxID, boolean fromCache){ 7 | super(items, maxID); 8 | this.fromCache=fromCache; 9 | } 10 | 11 | public boolean isFromCache(){ 12 | return fromCache; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_outline_email_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/EditStatus.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class EditStatus extends MastodonAPIRequest{ 7 | public EditStatus(CreateStatus.Request req, String id){ 8 | super(HttpMethod.PUT, "/statuses/"+id, Status.class); 9 | setRequestBody(req); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_audio_play_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_star_wght700grad200fill1_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/GetNotificationByID.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.notifications; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Notification; 5 | 6 | public class GetNotificationByID extends MastodonAPIRequest{ 7 | public GetNotificationByID(String id){ 8 | super(HttpMethod.GET, "/notifications/"+id, Notification.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_reply_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/home.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-anydpi-v26/ic_shortcut_compose.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/mipmap-anydpi-v26/ic_shortcut_explore.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/125.txt: -------------------------------------------------------------------------------- 1 | - New option to use our color theme instead of Material You 2 | - Support for the color contrast setting in Android 15 3 | - You can now crop your profile picture when editing your profile 4 | - You can now long-press "Add media" in the composer to bring up the file picker 5 | - New look for the media viewer 6 | - New follower notifications will now appear grouped 7 | - Directional loading for gaps in timelines: load newer posts when scrolling up, older when down -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_bottom_sheet_handle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/lists/GetLists.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.lists; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.FollowList; 7 | 8 | import java.util.List; 9 | 10 | public class GetLists extends MastodonAPIRequest>{ 11 | public GetLists(){ 12 | super(HttpMethod.GET, "/lists", new TypeToken<>(){}); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/AccountRemovedFromListEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class AccountRemovedFromListEvent{ 4 | public final String accountID; 5 | public final String listID; 6 | public final String targetAccountID; 7 | 8 | public AccountRemovedFromListEvent(String accountID, String listID, String targetAccountID){ 9 | this.accountID=accountID; 10 | this.listID=listID; 11 | this.targetAccountID=targetAccountID; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/NotificationsMarkerUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class NotificationsMarkerUpdatedEvent{ 4 | public final String accountID; 5 | public final String marker; 6 | public final boolean clearUnread; 7 | 8 | public NotificationsMarkerUpdatedEvent(String accountID, String marker, boolean clearUnread){ 9 | this.accountID=accountID; 10 | this.marker=marker; 11 | this.clearUnread=clearUnread; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/NotificationsPolicy.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | public class NotificationsPolicy extends BaseModel{ 4 | public boolean filterNewAccounts; 5 | public boolean filterNotFollowers; 6 | public boolean filterNotFollowing; 7 | public boolean filterPrivateMentions; 8 | public Summary summary; 9 | 10 | public static class Summary{ 11 | public int pendingNotificationsCount; 12 | public int pendingRequestsCount; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_tag_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/standalone_list_timeline.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | -------------------------------------------------------------------------------- /mastodon/ci_signing.gradle: -------------------------------------------------------------------------------- 1 | // Included into build.gradle when running in a CI pipeline 2 | 3 | android{ 4 | signingConfigs{ 5 | release{ 6 | keyAlias "key0" 7 | keyPassword System.getenv("KEYSTORE_PASSWORD") 8 | storeFile file(System.getenv("KEYSTORE_FILE")) 9 | storePassword System.getenv("KEYSTORE_PASSWORD") 10 | } 11 | } 12 | buildTypes{ 13 | release{ 14 | signingConfig signingConfigs.release 15 | } 16 | githubRelease{ 17 | signingConfig signingConfigs.release 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /mastodon/src/main/java/com/google/android/gms/common/Feature.java: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common; 2 | 3 | import org.microg.safeparcel.AutoSafeParcelable; 4 | import org.microg.safeparcel.SafeParceled; 5 | 6 | public class Feature extends AutoSafeParcelable{ 7 | @SafeParceled(1) 8 | public String name; 9 | @SafeParceled(2) 10 | public int oldVersion; 11 | @SafeParceled(3) 12 | public long version=-1; 13 | 14 | public static final Creator CREATOR=new AutoCreator<>(Feature.class); 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/GetNotificationsPolicy.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.notifications; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.NotificationsPolicy; 5 | 6 | public class GetNotificationsPolicy extends MastodonAPIRequest{ 7 | public GetNotificationsPolicy(){ 8 | super(HttpMethod.GET, "/notifications/policy", NotificationsPolicy.class); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_list_header_simple.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/RemoveAccountPostsEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | public class RemoveAccountPostsEvent{ 4 | public final String accountID; 5 | public final String postsByAccountID; 6 | public final boolean isUnfollow; 7 | 8 | public RemoveAccountPostsEvent(String accountID, String postsByAccountID, boolean isUnfollow){ 9 | this.accountID=accountID; 10 | this.postsByAccountID=postsByAccountID; 11 | this.isUnfollow=isUnfollow; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_done_all_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_gavel_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/events/AccountAddedToListEvent.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.events; 2 | 3 | import org.joinmastodon.android.model.Account; 4 | 5 | public class AccountAddedToListEvent{ 6 | public final String accountID; 7 | public final String listID; 8 | public final Account account; 9 | 10 | public AccountAddedToListEvent(String accountID, String listID, Account account){ 11 | this.accountID=accountID; 12 | this.listID=listID; 13 | this.account=account; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/SetStatusPinned.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class SetStatusPinned extends MastodonAPIRequest{ 7 | public SetStatusPinned(String id, boolean pinned){ 8 | super(HttpMethod.POST, "/statuses/"+id+"/"+(pinned ? "pin" : "unpin"), Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/tags/SetTagFollowed.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.tags; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Hashtag; 5 | 6 | public class SetTagFollowed extends MastodonAPIRequest{ 7 | public SetTagFollowed(String tag, boolean followed){ 8 | super(HttpMethod.POST, "/tags/"+tag+(followed ? "/follow" : "/unfollow"), Hashtag.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_donation_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/notifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/instance/GetCustomEmojis.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.instance; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Emoji; 7 | 8 | import java.util.List; 9 | 10 | public class GetCustomEmojis extends MastodonAPIRequest>{ 11 | public GetCustomEmojis(){ 12 | super(HttpMethod.GET, "/custom_emojis", new TypeToken<>(){}); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/instance/GetInstanceV2.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.instance; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.InstanceV2; 5 | 6 | public class GetInstanceV2 extends MastodonAPIRequest{ 7 | public GetInstanceV2(){ 8 | super(HttpMethod.GET, "/instance", InstanceV2.class); 9 | } 10 | 11 | @Override 12 | protected String getPathPrefix(){ 13 | return "/api/v2"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/RevokeStatusQuote.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class RevokeStatusQuote extends MastodonAPIRequest{ 7 | public RevokeStatusQuote(String id, String quoteID){ 8 | super(HttpMethod.POST, "/statuses/"+id+"/quotes/"+quoteID+"/revoke", Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FollowSuggestion.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.ObjectValidationException; 4 | import org.joinmastodon.android.api.RequiredField; 5 | 6 | public class FollowSuggestion extends BaseModel{ 7 | @RequiredField 8 | public Account account; 9 | // public String source; 10 | 11 | @Override 12 | public void postprocess() throws ObjectValidationException{ 13 | super.postprocess(); 14 | account.postprocess(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_outline_link_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/ComposeHashtagOrMentionSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | import android.graphics.Typeface; 4 | import android.text.TextPaint; 5 | 6 | public class ComposeHashtagOrMentionSpan extends ComposeAutocompleteSpan{ 7 | private static final Typeface MEDIUM_TYPEFACE=Typeface.create("sans-serif-medium", 0); 8 | 9 | @Override 10 | public void updateDrawState(TextPaint tp){ 11 | tp.setColor(tp.linkColor); 12 | tp.setTypeface(MEDIUM_TYPEFACE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_popup.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_currency_input.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/E.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android; 2 | 3 | import com.squareup.otto.AsyncBus; 4 | 5 | /** 6 | * Created by grishka on 24.08.15. 7 | */ 8 | public class E{ 9 | private static AsyncBus bus=new AsyncBus(); 10 | 11 | public static void post(Object event){ 12 | bus.post(event); 13 | } 14 | 15 | public static void register(Object listener){ 16 | bus.register(listener); 17 | } 18 | 19 | public static void unregister(Object listener){ 20 | bus.unregister(listener); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/filters/GetLegacyFilters.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.filters; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.LegacyFilter; 7 | 8 | import java.util.List; 9 | 10 | public class GetLegacyFilters extends MastodonAPIRequest>{ 11 | public GetLegacyFilters(){ 12 | super(HttpMethod.GET, "/filters", new TypeToken<>(){}); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/RespondToNotificationRequest.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.notifications; 2 | 3 | import org.joinmastodon.android.api.ResultlessMastodonAPIRequest; 4 | 5 | public class RespondToNotificationRequest extends ResultlessMastodonAPIRequest{ 6 | public RespondToNotificationRequest(String id, boolean allow){ 7 | super(HttpMethod.POST, "/notifications/requests/"+id+(allow ? "/accept" : "/dismiss")); 8 | setRequestBody(new Object()); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/fg_link_card.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/RejectFollowRequest.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Relationship; 5 | 6 | public class RejectFollowRequest extends MastodonAPIRequest { 7 | public RejectFollowRequest(String accountID) { 8 | super(HttpMethod.POST, "/follow_requests/" + accountID + "/reject", Relationship.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/SetAccountMuted.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Relationship; 5 | 6 | public class SetAccountMuted extends MastodonAPIRequest{ 7 | public SetAccountMuted(String id, boolean muted){ 8 | super(HttpMethod.POST, "/accounts/"+id+"/"+(muted ? "mute" : "unmute"), Relationship.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/markers/GetMarkers.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.markers; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.TimelineMarkers; 5 | 6 | public class GetMarkers extends MastodonAPIRequest{ 7 | public GetMarkers(){ 8 | super(HttpMethod.GET, "/markers", TimelineMarkers.class); 9 | addQueryParameter("timeline[]", "home"); 10 | addQueryParameter("timeline[]", "notifications"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_logout_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_reply_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/93.txt: -------------------------------------------------------------------------------- 1 | - Adjust filters in the Notifications tab to silence unwanted alerts* 2 | - Opt into push notifications when a user posts by tapping the bell 🔔 in the top corner of a user's profile. 3 | - Mute overly active conversation notifications via the More button ⋮ on your posts 4 | - When writing a post, choose Quiet public 🌙 visibility to avoid appearing in feeds or searches 5 | - Improved post legibility with adjusted line height 6 | - Bug fixes 7 | 8 | *Your server must support filtered notifications to see this option. -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/AcceptFollowRequest.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Relationship; 5 | 6 | public class AcceptFollowRequest extends MastodonAPIRequest { 7 | public AcceptFollowRequest(String accountID) { 8 | super(HttpMethod.POST, "/follow_requests/" + accountID + "/authorize", Relationship.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/SetStatusReblogged.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class SetStatusReblogged extends MastodonAPIRequest{ 7 | public SetStatusReblogged(String id, boolean reblogged){ 8 | super(HttpMethod.POST, "/statuses/"+id+"/"+(reblogged ? "reblog" : "unreblog"), Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/text/NonColoredLinkSpan.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.text; 2 | 3 | import android.text.TextPaint; 4 | 5 | public class NonColoredLinkSpan extends LinkSpan{ 6 | public NonColoredLinkSpan(String link, OnLinkClickListener listener, Type type, String accountID, Object linkObject, Object parentObject){ 7 | super(link, listener, type, accountID, linkObject, parentObject); 8 | } 9 | 10 | @Override 11 | public void updateDrawState(TextPaint tp){ 12 | color=tp.getColor(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/viewholders/SimpleListItemViewHolder.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.viewholders; 2 | 3 | import android.content.Context; 4 | import android.view.ViewGroup; 5 | 6 | import org.joinmastodon.android.R; 7 | import org.joinmastodon.android.model.viewmodel.ListItem; 8 | 9 | public class SimpleListItemViewHolder extends ListItemViewHolder>{ 10 | public SimpleListItemViewHolder(Context context, ViewGroup parent){ 11 | super(context, R.layout.item_generic_list, parent); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_wght700_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/large_title.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/SetAccountBlocked.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Relationship; 5 | 6 | public class SetAccountBlocked extends MastodonAPIRequest{ 7 | public SetAccountBlocked(String id, boolean blocked){ 8 | super(HttpMethod.POST, "/accounts/"+id+"/"+(blocked ? "block" : "unblock"), Relationship.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/SetStatusBookmarked.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class SetStatusBookmarked extends MastodonAPIRequest{ 7 | public SetStatusBookmarked(String id, boolean bookmarked){ 8 | super(HttpMethod.POST, "/statuses/"+id+"/"+(bookmarked ? "bookmark" : "unbookmark"), Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/SetStatusFavorited.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class SetStatusFavorited extends MastodonAPIRequest{ 7 | public SetStatusFavorited(String id, boolean favorited){ 8 | super(HttpMethod.POST, "/statuses/"+id+"/"+(favorited ? "favourite" : "unfavourite"), Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/AsyncRefresh.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | import org.joinmastodon.android.api.AllFieldsAreRequired; 6 | 7 | @AllFieldsAreRequired 8 | public class AsyncRefresh extends BaseModel{ 9 | public String id; 10 | public RefreshStatus status; 11 | public int resultCount; 12 | 13 | public enum RefreshStatus{ 14 | @SerializedName("running") 15 | RUNNING, 16 | @SerializedName("finished") 17 | FINISHED, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/History.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.parceler.Parcel; 5 | 6 | @AllFieldsAreRequired 7 | @Parcel 8 | public class History extends BaseModel{ 9 | public long day; // unixtime 10 | public int uses; 11 | public int accounts; 12 | 13 | @Override 14 | public String toString(){ 15 | return "History{"+ 16 | "day="+day+ 17 | ", uses="+uses+ 18 | ", accounts="+accounts+ 19 | '}'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_segmented_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_reply_wght700_20px.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_warning_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetAccountLists.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.FollowList; 7 | 8 | import java.util.List; 9 | 10 | public class GetAccountLists extends MastodonAPIRequest>{ 11 | public GetAccountLists(String id){ 12 | super(HttpMethod.GET, "/accounts/"+id+"/lists", new TypeToken<>(){}); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/SetStatusConversationMuted.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Status; 5 | 6 | public class SetStatusConversationMuted extends MastodonAPIRequest{ 7 | public SetStatusConversationMuted(String id, boolean muted){ 8 | super(HttpMethod.POST, "/statuses/"+id+(muted ? "/mute" : "/unmute"), Status.class); 9 | setRequestBody(new Object()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/TranslateStatus.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.Translation; 5 | 6 | import java.util.Map; 7 | 8 | public class TranslateStatus extends MastodonAPIRequest{ 9 | public TranslateStatus(String id, String lang){ 10 | super(HttpMethod.POST, "/statuses/"+id+"/translate", Translation.class); 11 | setRequestBody(Map.of("lang", lang)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_boost_fill_alt_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_emoji_section.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_filter_alt_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_insert_chart_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_generic_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/SetNotificationsPolicy.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.notifications; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | import org.joinmastodon.android.model.NotificationsPolicy; 5 | 6 | public class SetNotificationsPolicy extends MastodonAPIRequest{ 7 | public SetNotificationsPolicy(NotificationsPolicy policy){ 8 | super(HttpMethod.PUT, "/notifications/policy", NotificationsPolicy.class); 9 | setRequestBody(policy); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_outline_person_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_star_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/com/google/android/gms/common/moduleinstall/ModuleInstallIntentResponse.java: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | import android.app.PendingIntent; 4 | 5 | import org.microg.safeparcel.AutoSafeParcelable; 6 | import org.microg.safeparcel.SafeParceled; 7 | 8 | public class ModuleInstallIntentResponse extends AutoSafeParcelable{ 9 | @SafeParceled(1) 10 | public PendingIntent pendingIntent; 11 | 12 | public static final Creator CREATOR=new AutoCreator<>(ModuleInstallIntentResponse.class); 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/ObjectValidationException.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import java.io.IOException; 4 | 5 | public class ObjectValidationException extends IOException{ 6 | public ObjectValidationException(){ 7 | } 8 | 9 | public ObjectValidationException(String message){ 10 | super(message); 11 | } 12 | 13 | public ObjectValidationException(String message, Throwable cause){ 14 | super(message, cause); 15 | } 16 | 17 | public ObjectValidationException(Throwable cause){ 18 | super(cause); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_filled_text_field_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_compose_foreground.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_domain_disabled_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/menu/notification_request.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/com/google/android/gms/common/moduleinstall/ModuleAvailabilityResponse.java: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.moduleinstall; 2 | 3 | import org.microg.safeparcel.AutoSafeParcelable; 4 | import org.microg.safeparcel.SafeParceled; 5 | 6 | public class ModuleAvailabilityResponse extends AutoSafeParcelable{ 7 | @SafeParceled(1) 8 | public boolean modulesAvailable; 9 | @SafeParceled(2) 10 | public int availabilityStatus; 11 | 12 | public static final Creator CREATOR=new AutoCreator<>(ModuleAvailabilityResponse.class); 13 | } 14 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/Marker.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | 5 | import java.time.Instant; 6 | 7 | @AllFieldsAreRequired 8 | public class Marker extends BaseModel{ 9 | public String lastReadId; 10 | public long version; 11 | public Instant updatedAt; 12 | 13 | @Override 14 | public String toString(){ 15 | return "Marker{"+ 16 | "lastReadId='"+lastReadId+'\''+ 17 | ", version="+version+ 18 | ", updatedAt="+updatedAt+ 19 | '}'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/catalog/CatalogCategory.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model.catalog; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.joinmastodon.android.model.BaseModel; 5 | 6 | @AllFieldsAreRequired 7 | public class CatalogCategory extends BaseModel{ 8 | public String category; 9 | public int serversCount; 10 | 11 | @Override 12 | public String toString(){ 13 | return "CatalogCategory{"+ 14 | "category='"+category+'\''+ 15 | ", serversCount="+serversCount+ 16 | '}'; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_warning_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/alert_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_autocomplete_hashtag.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_composer_visibility.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_star_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/trends/GetTrendingHashtags.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.trends; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Hashtag; 7 | 8 | import java.util.List; 9 | 10 | public class GetTrendingHashtags extends MastodonAPIRequest>{ 11 | public GetTrendingHashtags(int limit){ 12 | super(HttpMethod.GET, "/trends", new TypeToken<>(){}); 13 | addQueryParameter("limit", limit+""); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/utils/ObjectIdComparator.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.utils; 2 | 3 | import java.util.Comparator; 4 | 5 | public class ObjectIdComparator implements Comparator{ 6 | public static final ObjectIdComparator INSTANCE=new ObjectIdComparator(); 7 | 8 | @Override 9 | public int compare(String o1, String o2){ 10 | int l1=o1==null ? 0 : o1.length(); 11 | int l2=o2==null ? 0 : o2.length(); 12 | if(l1!=l2) 13 | return Integer.compare(l1, l2); 14 | if(l1==0) 15 | return 0; 16 | return o1.compareTo(o2); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_delete_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/128.txt: -------------------------------------------------------------------------------- 1 | - Settings are now split into global settings and account-specific settings for each account you're logged into 2 | - Profiles now show who of the people you follow also follows this person 3 | - More easily swap between posts, profiles and hashtags when using search 4 | - We now tell you exactly how many followers you'd lose when blocking a whole server so you can avoid costly mistakes 5 | - Bookmarks and favourites have moved to a new tab on your profile 6 | - The button that loads missing posts is now more upfront about which direction it's going to load in -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetAccountFeaturedHashtags.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Hashtag; 7 | 8 | import java.util.List; 9 | 10 | public class GetAccountFeaturedHashtags extends MastodonAPIRequest>{ 11 | public GetAccountFeaturedHashtags(String id){ 12 | super(HttpMethod.GET, "/accounts/"+id+"/featured_tags", new TypeToken<>(){}); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/trends/GetTrendingLinks.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.trends; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Card; 7 | 8 | import java.util.List; 9 | 10 | public class GetTrendingLinks extends MastodonAPIRequest>{ 11 | public GetTrendingLinks(int limit){ 12 | super(HttpMethod.GET, "/trends/links", new TypeToken<>(){}); 13 | addQueryParameter("limit", String.valueOf(limit)); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FilterKeyword.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.parceler.Parcel; 5 | 6 | @AllFieldsAreRequired 7 | @Parcel 8 | public class FilterKeyword extends BaseModel{ 9 | public String id; 10 | public String keyword; 11 | public boolean wholeWord; 12 | 13 | @Override 14 | public String toString(){ 15 | return "FilterKeyword{"+ 16 | "id='"+id+'\''+ 17 | ", keyword='"+keyword+'\''+ 18 | ", wholeWord="+wholeWord+ 19 | '}'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/m3_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/WrapperRequest.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import me.grishka.appkit.api.APIRequest; 4 | 5 | /** 6 | * Wraps a different API request to allow a chain of requests to be canceled 7 | */ 8 | public class WrapperRequest extends APIRequest{ 9 | public APIRequest wrappedRequest; 10 | 11 | @Override 12 | public void cancel(){ 13 | if(wrappedRequest!=null) 14 | wrappedRequest.cancel(); 15 | } 16 | 17 | @Override 18 | public APIRequest exec(){ 19 | throw new UnsupportedOperationException(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/viewmodel/SectionHeaderListItem.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model.viewmodel; 2 | 3 | import org.joinmastodon.android.R; 4 | 5 | import androidx.annotation.StringRes; 6 | 7 | public class SectionHeaderListItem extends ListItem{ 8 | public SectionHeaderListItem(String title){ 9 | super(title, null, null); 10 | } 11 | 12 | public SectionHeaderListItem(@StringRes int title){ 13 | super(title, 0, null); 14 | } 15 | 16 | @Override 17 | public int getItemViewType(){ 18 | return R.id.list_item_section_header; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_repeat_wght700grad200fill1_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/filters/GetFilters.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.filters; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Filter; 7 | 8 | import java.util.List; 9 | 10 | public class GetFilters extends MastodonAPIRequest>{ 11 | public GetFilters(){ 12 | super(HttpMethod.GET, "/filters", new TypeToken<>(){}); 13 | } 14 | 15 | @Override 16 | protected String getPathPrefix(){ 17 | return "/api/v2"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/ui/tabs/MaterialResources.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.ui.tabs; 2 | 3 | import android.content.Context; 4 | import android.content.res.ColorStateList; 5 | import android.content.res.TypedArray; 6 | import android.graphics.drawable.Drawable; 7 | 8 | class MaterialResources{ 9 | public static Drawable getDrawable(Context context, TypedArray a, int attr){ 10 | return a.getDrawable(attr); 11 | } 12 | 13 | public static ColorStateList getColorStateList(Context context, TypedArray a, int attr){ 14 | return a.getColorStateList(attr); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/GetDomainBlockPreview.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | 5 | public class GetDomainBlockPreview extends MastodonAPIRequest{ 6 | public GetDomainBlockPreview(String domain){ 7 | super(HttpMethod.GET, "/domain_blocks/preview", Response.class); 8 | addQueryParameter("domain", domain); 9 | } 10 | 11 | public static class Response{ 12 | public int followingCount; 13 | public int followersCount; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_download_20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_filled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_handle_help.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_edit_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/expanded_title_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/MastodonDetailedErrorResponse.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api; 2 | 3 | import java.util.HashMap; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | public class MastodonDetailedErrorResponse extends MastodonErrorResponse{ 8 | public Map> detailedErrors; 9 | 10 | public MastodonDetailedErrorResponse(String error, int httpStatus, Throwable exception){ 11 | super(error, httpStatus, exception); 12 | } 13 | 14 | public static class FieldError{ 15 | public String error; 16 | public String description; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FamiliarFollowers.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.AllFieldsAreRequired; 4 | import org.joinmastodon.android.api.ObjectValidationException; 5 | 6 | import java.util.List; 7 | 8 | @AllFieldsAreRequired 9 | public class FamiliarFollowers extends BaseModel{ 10 | public String id; 11 | public List accounts; 12 | 13 | @Override 14 | public void postprocess() throws ObjectValidationException{ 15 | super.postprocess(); 16 | for(Account acc:accounts){ 17 | acc.postprocess(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/model/FilterResult.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.model; 2 | 3 | import org.joinmastodon.android.api.ObjectValidationException; 4 | import org.joinmastodon.android.api.RequiredField; 5 | import org.parceler.Parcel; 6 | 7 | import java.util.List; 8 | 9 | @Parcel 10 | public class FilterResult extends BaseModel{ 11 | @RequiredField 12 | public Filter filter; 13 | 14 | public List keywordMatches; 15 | 16 | @Override 17 | public void postprocess() throws ObjectValidationException{ 18 | super.postprocess(); 19 | filter.postprocess(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/fragments/account_list/StatusRelatedAccountListFragment.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.fragments.account_list; 2 | 3 | import android.os.Bundle; 4 | 5 | import org.joinmastodon.android.model.Status; 6 | import org.parceler.Parcels; 7 | 8 | public abstract class StatusRelatedAccountListFragment extends PaginatedAccountListFragment{ 9 | protected Status status; 10 | 11 | @Override 12 | public void onCreate(Bundle savedInstanceState){ 13 | super.onCreate(savedInstanceState); 14 | status=Parcels.unwrap(getArguments().getParcelable("status")); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/instance/GetInstanceExtendedDescription.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.instance; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | 5 | import java.time.Instant; 6 | 7 | public class GetInstanceExtendedDescription extends MastodonAPIRequest{ 8 | public GetInstanceExtendedDescription(){ 9 | super(HttpMethod.GET, "/instance/extended_description", Response.class); 10 | } 11 | 12 | public static class Response{ 13 | public Instant updatedAt; 14 | public String content; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/session/AccountActivationInfo.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.session; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | public class AccountActivationInfo{ 6 | @SerializedName(value="email", alternate="a") 7 | public String email; 8 | @SerializedName(value="last_email_confirmation_resend", alternate="b") 9 | public long lastEmailConfirmationResend; 10 | 11 | public AccountActivationInfo(String email, long lastEmailConfirmationResend){ 12 | this.email=email; 13 | this.lastEmailConfirmationResend=lastEmailConfirmationResend; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_filled_secondary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_m3_cancel.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_unfold_more_wght600_15pt_8x20px.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_m3_outlined_text_field_nopad.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_mail_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_notifications_fill1_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_tonal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/bg_button_m3_tonal_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /mastodon/src/main/res/drawable/ic_open_in_browser_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /mastodon/src/main/java/com/google/android/gms/common/internal/ConnectionInfo.java: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import android.os.Bundle; 4 | 5 | import com.google.android.gms.common.Feature; 6 | 7 | import org.microg.safeparcel.AutoSafeParcelable; 8 | import org.microg.safeparcel.SafeParceled; 9 | 10 | public class ConnectionInfo extends AutoSafeParcelable{ 11 | @SafeParceled(1) 12 | public Bundle params; 13 | @SafeParceled(2) 14 | public Feature[] features; 15 | @SafeParceled(3) 16 | public int unknown3; 17 | 18 | public static final Creator CREATOR=new AutoCreator<>(ConnectionInfo.class); 19 | } 20 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/SetDomainBlocked.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | 5 | public class SetDomainBlocked extends MastodonAPIRequest{ 6 | public SetDomainBlocked(String domain, boolean blocked){ 7 | super(blocked ? HttpMethod.POST : HttpMethod.DELETE, "/domain_blocks", Object.class); 8 | setRequestBody(new Request(domain)); 9 | } 10 | 11 | private static class Request{ 12 | public String domain; 13 | 14 | public Request(String domain){ 15 | this.domain=domain; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/filters/KeywordAttribute.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.filters; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | import androidx.annotation.Keep; 6 | 7 | @Keep 8 | class KeywordAttribute{ 9 | public String id; 10 | @SerializedName("_destroy") 11 | public Boolean delete; 12 | public String keyword; 13 | public Boolean wholeWord; 14 | 15 | public KeywordAttribute(String id, Boolean delete, String keyword, Boolean wholeWord){ 16 | this.id=id; 17 | this.delete=delete; 18 | this.keyword=keyword; 19 | this.wholeWord=wholeWord; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /mastodon/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal; 7 | 8 | import android.os.Bundle; 9 | import com.google.android.gms.common.internal.ConnectionInfo; 10 | 11 | interface IGmsCallbacks { 12 | void onPostInitComplete(int statusCode, IBinder binder, in Bundle params); 13 | void onAccountValidationComplete(int statusCode, in Bundle params); 14 | void onPostInitCompleteWithConnectionInfo(int statusCode, IBinder binder, in ConnectionInfo info); 15 | } 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/accounts/ResendConfirmationEmail.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.accounts; 2 | 3 | import org.joinmastodon.android.api.MastodonAPIRequest; 4 | 5 | public class ResendConfirmationEmail extends MastodonAPIRequest{ 6 | public ResendConfirmationEmail(String email){ 7 | super(HttpMethod.POST, "/emails/confirmations", Object.class); 8 | // setRequestBody(new Body(email)); 9 | setRequestBody(new Object()); 10 | } 11 | 12 | private static class Body{ 13 | public String email; 14 | 15 | public Body(String email){ 16 | this.email=email; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/statuses/GetStatusesByIDs.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.statuses; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.MastodonAPIRequest; 6 | import org.joinmastodon.android.model.Status; 7 | 8 | import java.util.Collection; 9 | import java.util.List; 10 | 11 | public class GetStatusesByIDs extends MastodonAPIRequest>{ 12 | public GetStatusesByIDs(Collection ids){ 13 | super(HttpMethod.GET, "/statuses", new TypeToken<>(){}); 14 | for(String id:ids) 15 | addQueryParameter("id[]", id); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /mastodon/src/main/res/layout/item_alert_single_choice_1line.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/notifications/GetNotificationRequests.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.notifications; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.requests.HeaderPaginationRequest; 6 | import org.joinmastodon.android.model.NotificationRequest; 7 | 8 | public class GetNotificationRequests extends HeaderPaginationRequest{ 9 | public GetNotificationRequests(String maxID){ 10 | super(HttpMethod.GET, "/notifications/requests", new TypeToken<>(){}); 11 | if(maxID!=null) 12 | addQueryParameter("max_id", maxID); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /mastodon/src/main/java/org/joinmastodon/android/api/requests/tags/GetFollowedTags.java: -------------------------------------------------------------------------------- 1 | package org.joinmastodon.android.api.requests.tags; 2 | 3 | import com.google.gson.reflect.TypeToken; 4 | 5 | import org.joinmastodon.android.api.requests.HeaderPaginationRequest; 6 | import org.joinmastodon.android.model.Hashtag; 7 | 8 | public class GetFollowedTags extends HeaderPaginationRequest{ 9 | public GetFollowedTags(String maxID, int limit){ 10 | super(HttpMethod.GET, "/followed_tags", new TypeToken<>(){}); 11 | if(maxID!=null) 12 | addQueryParameter("max_id", maxID); 13 | if(limit>0) 14 | addQueryParameter("limit", limit+""); 15 | } 16 | } 17 | --------------------------------------------------------------------------------