Add sticker sending, fix sticker rendering, and integrate Find My Friends#188
Open
MrMistic wants to merge 3 commits intoOpenBubbles:rustpushfrom
Open
Add sticker sending, fix sticker rendering, and integrate Find My Friends#188MrMistic wants to merge 3 commits intoOpenBubbles:rustpushfrom
MrMistic wants to merge 3 commits intoOpenBubbles:rustpushfrom
Conversation
Added Find My Friends integration to fetch and display the short address of a friend based on their location. Implemented caching for address retrieval to optimize performance.
…erback attachment loading - sticker_holder.dart: Add HEIC→PNG conversion in checkImage() using FlutterImageCompress (same pattern as loadAndGetProperties), wrap in try/catch, use firstWhereOrNull, add errorBuilder to Image.memory() - reaction.dart: Same HEIC→PNG conversion and error handling for STICKERBACK sticker rendering path - chat.dart: Include 'stickerback' in attachment loading filter so STICKERBACK reaction messages get their attachments loaded Fixes OpenBubbles#121
Author
|
Haven't been able to get pypush fairplay certs to work for me yet so I would love for someone else to test these features out! |
- Add stickers directory in filesystem_service (Android external storage) - Add saveAsSticker() method in attachments_service - Add SaveAsSticker action to details_menu_action enum - Add Save as Sticker button to fullscreen image viewer (both skins) - Add Save as Sticker to message long-press popup (image attachments) - Create StickerPicker widget with grid UI, HEIC support, empty state - Integrate sticker picker into attachment picker message wheel - Wire up send path: isStickerSend flag flows through SendAnimation to set balloonBundleId, then rustpush_service detects it to build PartExtension.sticker + ExtensionApp with UserGenerated bundle ID - Fix fullscreen_image NavigationBar index mapping (dynamic action list)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds user-generated sticker sending support, fixes sticker rendering issues, and integrates Find My Friends for location display in the iOS chat header.
Find My Friends Integration
File changed:
cupertino_header.dartSticker Rendering Fix (Addresses Issue #121)
sticker_holder.dartandreaction.dartusing FlutterImageCompress (same pattern asloadAndGetProperties)firstWhereOrNullfor safe lookup,errorBuilderonImage.memory()stickerbackin the attachment loading filter inchat.dartso reaction sticker messages get their attachments loadedSticker Sending
Enables users to save images as stickers and send them as proper iMessage stickers (not regular image attachments).
Creates a sticker folder on device to enable quicker selection for saved stickers
Save as Sticker:
filesystem_service.dartat/Android/data/[package]/stickers/saveAsSticker()method inattachments_service.dartSticker Picker:
StickerPickerwidget with grid UI, HEIC thumbnail support, and empty stateSend Path:
isStickerSendflag flows throughconversation_view_controller.dart→SendAnimation(setsballoonBundleId) →rustpush_service.dartcom.apple.Stickers.UserGenerated.MessagesExtensionbundle ID and buildsPartExtension.sticker+ExtensionAppconversation_text_field.dartAll Files Changed
Find My Friends header:
cupertino_header.dart— Location fetching + address cachingSticker Rendering (#121):
sticker_holder.dart— HEIC conversion + error handlingreaction.dart— HEIC conversion for stickerback pathchat.dart— Stickerback attachment loading filterSticker Sending:
sticker_picker.dart— New file: grid picker widgettext_field_attachment_picker.dart— Sticker picker integrationdetails_menu_action.dart—SaveAsStickerenummessage_popup.dart— Long-press save as stickersend_animation.dart—balloonBundleIdfor stickersconversation_text_field.dart— ClearisStickerSendafter sendfullscreen_image.dart— Sticker save button + dynamic action list fixfilesystem_service.dart— Stickers directory getterattachments_service.dart—saveAsSticker()methodconversation_view_controller.dart—isStickerSendflagrustpush_service.dart—PartExtension.sticker+ExtensionAppin send path