Coder Social home page Coder Social logo

airmessage-android's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

airmessage-android's Issues

[Feature Request] Store attachments on SD card

This feature request is inspired by u/amthar's reddit post
Attachments can take up gigabytes on people's devices and it would be nice if you could store attachments on the SD Card. Many people, including myself, like to keep attachments downloaded for various reasons (or don't know you can delete them) and it would be nice to be able to offload them to your SD Card.

[Bug] Voice messages sent from Android do not render on macOS/iOS

I'm not sure what specific versions of macOS and iOS are affected, but I can confirm that both macOS Big Sur and iOS 14 cannot view or play the audio messages sent from AirMessage. Below is Tagavari's comment from my reddit post.

This is a bug due to the way that newer versions of iOS handle audio messages. I believe that they require some extra metadata that AirMessage isn't able to provide, and so they don't render properly on iOS.

There is a fix available for this bug on the beta channel, and I hope to bring it to stable soon. My apologies for any inconvenience this may have caused.

And here is another post asking a similar question by u/Windows10HomeEdition, https://www.reddit.com/r/AirMessage/comments/mxroep/voice_messages_not_received_by_recipient/

[Bug] Duplicated Tapbacks

I'm not sure if this bug occurs for the same reason as issue #7, so I opened a separate ticket just in case. I originally reported this in my reddit post here, and below is a copy and paste of that post.

I thought it was strange to see that the messages had four tapbacks when the chat only has three people, so then I checked the details and saw the tapbacks were duplicated. My phone is on Android 10 (OneUI 2.5) and my Mac is on macOS 10.14.6 Mojave.
lzmpouiu89j61
agfa3viu89j61
qoiytwiu89j61
d0znq2ju89j61
lxurn1ju89j61

Tagavari then commented

Thank you for reporting this issue. I'll have to do a bit of troubleshooting this weekend, I'll see if I can get it fixed!

To which I replied

This happened after a message sync so that may be related

[Enhancement] Treat nhtMessageUpdate as updates to the client's message database instead of new messages

I may be overlooking something (if I did, sorry), but would it be possible to treat the data from nhtMessageUpdate as an update to the AirMessage client's database, similar to a mass retrieval? I think that would help solve some issues and make AirMessage overall more stable.

As it stands now (as far as I can tell), anything the client receives via nhtMessageUpdate is assumed to be new. So, if the server sends messages (via nhtMessageUpdate) that the client has already seen, the client will still add them to the end of the conversation.

Would it be possible to change this so each message in the database is updated, similar to a mass retrieval? (i.e. if the server tells the client about a message the client already knows about, the client simply updates the message instead of adding it to the list again?) Each message GUID appears to be unique (so I assume it's relatively easy to update the database), but I'm not sure if there are any weird barriers that prevent this from happening.

That way, there wouldn't need to be another message type for nhtModifierUpdate, as the server could simply re-send a message via nhtMessageUpdate if the tapbacks change. This could also help if Apple introduces other iMessage features in the future, such as editable messages.

This could also help with stability. If the client sends a message to a conversation, the server could return the last 10 messages from the conversation, including the sent one. That could help cut down on strange sending bugs as the client would get a lot more messages and that would help fill any gaps in the client's database.

Again, apologies if I misunderstood the situation. Please let me know if you have any questions. Thanks!

(Potentially crazy) [Feature Request] iOS and macOS client applications

I know this sounds far fetched, but my inspiration for this came from this reddit post by u/Knightbreather. They have an iPhone that has strict IT management on it, which I assume includes blocks iMessage. u/ninjadev64 also commented I have this same issue, please fix this u/tagavari, though they were able to fix it by disabling third-party cookie blockers, as suggested to them by the dev.
I understand that AM Web is technically usable on iOS and macOS, but some users may want to always use manual configuration. I know that there is currently an Electron app being developed, so that could easily be built for macOS. Both WebMessage and BlueBubbles have Electron client apps, and both have builds for macOS. The iOS situation may be a little more tricky.
Alternatively, could AirMessage web be updated to allow for manual configuration? I know that before you've said,
Since it's not practical to connect a self-hosted server directly to a web browser, most communications for users of AirMessage Cloud happen through a proxy server that runs over WebSockets, that relays messages between your server and your connected devices.,
but could it be set up so that you could type the DDNS and port into a web address bar and that way you could manually connect to AirMessage through a browser? Remote Messages and SMServer work this way.
Let me know your thoughts, and thank you for the improvements you keep making to this awesome app.

[Feature Request] Handle SMS Tapback Messages

We all know that Apple's iMessage tapbacks are incredibly annoying for non-iMessage users. Google has recently begun addressing this in their Messages app by interpreting them as RCS reactions. AirMessage users are still subjected to this when they are in an SMS/MMS group text with mixed iPhone/Android users. I was thinking AirMessage's SMS handling feature could implement something similar for those of us who do not use Google's Messages app.

I've often wondered how difficult it would be to implement this kind of feature in a messaging app and I would like see if this is something the developers of AirMessage would be interested in developing. I do not know Java/Kotlin but am experienced in other languages so I might be able to take on this feature with some guidance from the maintainers.

My thought process is that any message that is received which begins with the following strings would be processed as a tapback:

  • Loved
  • Liked
  • Disliked
  • Laughed at
  • Emphasized
  • Questioned

A regex like ^Loved (".*"|an image|a video)$ could be used to identify a tapback message. In the case of a tapback that reacts to message text, the text history would be searched to see which message was reacted to and the appropriate tapback would be displayed on that message.

AirMessage already has the infrastructure for most of this, it would just be a matter of intercepting certain SMS/MMS messages and not displaying them to the user, opting instead for displaying a tapback icon. I don't think it would work when an image or video is reacted to since there's no way to know which media is receiving the reaction.

This could be an opt in feature but it might help alleviate some of the frustration we experience when dealing with SMS messages from iPhone users.

[Feature Request] Support iMessage stickers that are GIFs & Improve the sticker layout

This ticket is basically going to be a copy and paste of my reddit post here

Below, I have the same iMessage conversation on iOS and in AirMessage. The sticker is a GIF of the troll face going from a neutral expression to the classic troll face. However, AirMessage only shows the first frame of the GIF. Is there any way to add support for this in an update?
PNG image
Screenshot_20210430-010302_AirMessage

Tagavari then commented

Huh, I didn't even know that stickers could be animated. Can I ask what sticker pack you're using?

To which I replied

So for that it wasn’t a sticker pack, but it’s a feature that’s a part of the tenor gif iMessage app

That answer came from my friend since he is the one that sent the sticker.

Another thing that I thought was worth noting is that the sizing of the sticker is accurate, but the placement is not. Is there any way to address/fix this, or is it just kind of arbitrary?

[Feature Request] SMS Messages in web browser

I use AirMessage as my default SMS app on my android phone, however I noticed an issue that has been inconveniencing me for a while.

In an SMS app like Google Messages, you can pair a browser to your phone to view your messages from the web. This functionality is absent in AirMessage.

It would be extremely useful if there was an option to send SMS/MMS messages to the web client when the app is configured to be used as the SMS app on the phone, allowing a user to view both their iMessages and SMS/MMS messages from the web browser.

I'm not sure if this issue should belong here or airmessage/airmessage-web, just tell me to move it and I will.

Images Only Loading When App Is Opened In Time

Hello,
I'm looking for help to troubleshoot an inconsistant issue I've been experiencing with AirMessage On Android. I hope I can explain properly, feel free to ask for clarifications.
From what I can tell, and correct me if wrong, it seems by design that the application only loads in images when you open the enclosing chat. This is fine of course, however, I'm seeing that if I don't open the chat within a certain amount of time the image / video will fail to load when I get around to it.
For example: I receive a video while at work and can't open the app to see it until a few hours later. I'll open the chat and receive a message that it failed to retrieve the attachment.
This doesn't happen every time, but when I check immediately after receiving the notification it consistently loads just fine.

Very odd, is there anything I can try to fix this issue? Maybe there is a way to have these load in the background so they are already retrieved when I go to the app? If so that may be a viable workaround for me.

No spell check underlines

Misspelled words are not underlined in red only in AirMessage. I can still tap on misspelled words for spelling suggestions but it's easy to miss misspelled words without the underline. Using any of the following keyboards produces the same result:

  • Gboard
  • OpenBoard
  • Florisboard Beta

System spell check is enabled and spell check works in other apps.

Attachments fail to properly load on app.

I am having intermittent issues receiving attachments. When they download they sometimes display normally but occasionally they display as filename.extension (majority a .heic). When i tap them, my phone offers to open them in an app. They open black. When I look on my Mac, they appear fine in the Messages app.
Screenshot_20210811-081509
Mac Mini M1 running latest Big Sur (Cannot be downgraded to Catalina) and AirMessage server beta 3.3.1.
Phone is a OnePlus 9 Pro running AirMessage 3.2.2
Connection is setup as manual with my primary address being the static local IP of my Mac and the fallback address being a DDNS address to my home network. Issue has occured while both on and away from my home network.

I will note also that a rare few times while an attachment initially displayed a filename and extension it suddenly properly loads. I don't know if your apps or the Mac is doing some kind of on the fly conversion but if so maybe something is failing? The only other wrinkle is that this appears to have started after getting an M1 Mac. I used to run Catalina on a hackintosh but decided to get a real mac after that PC died. So I am not sure if Big Sur itself is the culprit. If theres anything i can do to help isolate this further let me know.

Cannot connect to AirMessage Server on Android 12 devices

Hello, I can't connect to Airmessage Server from several Android 12 devices. I get a "Your Server Couldn't Be Reached, An Internal error Occurred" screen. I'm using Automatic setup with Google account.

I'm running the server on a M1 Mac mini (latest Apple Silicon version 3.4.1) that remains always-on and always-connected. I have the following Android devices, all running AirMessage 3.3.6 from the Google Play Store:

  1. OnePlus 7 Pro, running OxygenOS 11, based on Android 11. AirMessage works fine and connects to my server via Google account. Can send and receive messages, business as usual, nothing wrong.
  2. Samsung Galaxy S20 5G, running OneUI 4.0, based on Android 12. I run the app, log in with my Google account, and receive the aforementioned Server Couldn't Be Reached error screen. I've tried reinstalling the app, clearing storage, restarting my phone, etc. No joy.
  3. Google Pixel 4a 5G, running Android 12. Same issues as the S20, same error screen.

Please let me know what additional data you might need. Thank you in advance!

3.3.8, 3.4.2 fails to sync all conversations from server

Hi there,

I have an SM-G991U running One UI 4.1 based on Android 12, running AirMessage 3.3.8 3.4.2, connected to a mac mini running AirMessage server 3.4.1 swift alpha 8 via the local intranet IP. All is well, messages sync fine but only for the 4 conversations that synced. The rest is ignored.

I looked for a setting on that but I did not notice anything on macOS or android.

Things I've tried:

  • uninstall app, reinstall
  • force quit the app and clear its data and cache

I also could not find a way to force it to re-sync. Any pointers or things I could try?

Thank you!

Pixel 7 connection issues

Got the new pixel today and tried logging in (not manual) but getting a checking connection hang, but can login on Pixel 6 without issue. Will try a manual connection when I'm next at the computer and update!

Implement swipe to go back

Similar to Telegram, allow users to swipe backwards from detail screens to navigate backwards.

This functionality is not in the Material spec, and conflicts with the default forwards-backwards animations on the latest versions of Android. However, it is similar to a standard on iOS, which may be helpful for users moving to Android.

Originally reported by Clippy on Discord

Wear OS client app... maybe? [Suggestion]

On both my phone and watch, I have access to the Google Messages app. That way, if I don't have my phone on me, I can send/respond to texts from my watch. Any thoughts on possibly making a Wear OS client app for AirMessage in the future?

[Feature Request] Schedule Messages

This feature was requested by u/Puzzleheaded-Item180 in this post. Tagavari replied

There's no technical reason why this wouldn't be possible. If there's enough interest in this feature, I'd be happy to add it!

I figured another poll could be shared, similar to the polls from issues #11 and #14. However, I feel like Tagavari should release/announce the polls. Let me know what you think.

User is not registered with iMessage

The web portal service will report if a user is not an iMessage user however the Android app does not. It simply never shows as delivered. In my case I was sending only an image with no text.

[Bug] AirMessage Beta doesn't work on OneUI 3

u/Ok_Necessary_1306 made a post about this here with an S21 Ultra. Below is the image from their post. u/andrewapicture had the same issue on their S21.
qg3540sqnpq61

I also made a post about this issue with my S10e on OneUI 3, however, I have since downgraded to OneUI 2.5 where AirMessage beta works perfectly. Below is a copy and paste of my post.

I tried to set up the AirMessage beta with manual IP/port forwarding, but I was unable to do so. Below is a photo/video of my issue with all personal information removed.

At first, I didn't know what the problem, was, so I attempted to use the stable server and Android app. I was prompted to install the JDK, so I did that, and then the stable app worked. Then, I tried the beta app one more time, but I still received the same error (I switched between stable and beta about 5 times, and I tried using my public and private IP addresses instead of my DDNS address, and nothing worked). Does anyone have any thoughts?
1g7w8h52a2l61
https://www.reddit.com/link/lxsu67/video/16yupel7a2l61/player

QOL Feature Request: Add option to call numbers using system default calling app

This is just a light suggestion / feature request for the addition of a call option in the app's UI when selecting a contact's profile or on a message thread with a single recipient.
I could be mistaken easily, but I believe that such a feature would be relatively simple to implement by invoking the activity for the android system's default phone call app.

[Feature Request] Show time of last successful message sync

I'm often a bit nervous that AirMessage has silently stopped working. It'd be great to have a UI indicator of the last time the app successfully synced messages to the AirMessage server and the last time the server successfully synced messages from iMessage. Knowing these would give confidence things are still working correctly for those of us who don't receive a lot of messages and give an indication of when the server needs to be restarted because something has gone wrong.

P.S. AirMessage is great! Thank you so much!

[Feature Request] Ability to refresh the attachment picker preview

Sometimes, if an attachment was saved recently, it doesn't always show up in the attachment picker, so adding a way to refresh it would be cool. Below is a video example.

Screen_Recording_20210808-005943.mp4

I would also be interested in a privacy/redacted mode that hides contact and message information for recordings and screenshots like these that are uploaded to GitHub. However, I feel like that should have its own ticket. Here is my SMServer ticket for that same feature.

[Bug] Messages with multiple attachments or parts display out of order

The message I sent with the picture of Thanos and the text caption were sent from an iOS device.
Thanos AirMessage
Thanos iOS
I have pasted Tagavari's question from my reddit post, along with my answer.

Is that image and text content part of the same message (rather than being sent as 2 separate messages)? When provided with a mixed message, AirMessage will by default put the text content above attachments, though Apple Messages puts it below. This could be changed fairly easily. However, if these are 2 separate messages, then this would be a sorting issue instead that would probably take a bit more work to resolve.

It is the same message/a mixed message.

Is the Protocol 5.2 sorting parameter useful for this issue, or no?
u-Tagavari

This particular photo of Thanos has been an issue that I have reported on quite a lot.
See here, here, here, here, and here.

{
  "id": "D3DBDAD8-5EEE-4D72-ADB7-20A74501706D",
  "fromMe": true,
  "isTypingMessage": false,
  "description": "We'll show up and he'll be like",
  "flags": 1081349,
  "fileTransferIDs": [
    "72D48466-A535-4C93-AA78-6791A8AB53F1"
  ],
  "chatID": "chat526745548997352517",
  "time": 1615577622383.0002,
  "timeRead": 0,
  "isSOS": false,
  "timeDelivered": 0,
  "isAudioMessage": false,
  "isCancelTypingMessage": false,
  "items": [
    {
      "type": "attachment",
      "payload": {
        "metadata": {
          "size": {
            "width": 500,
            "height": 255
          },
          "id": "72D48466-A535-4C93-AA78-6791A8AB53F1",
          "filename": "AE5727AE-29A7-4E84-B537-17AFD35FEB41.gif",
          "uti": "com.compuserve.gif",
          "mime": "image/gif"
        },
        "id": "p:0/D3DBDAD8-5EEE-4D72-ADB7-20A74501706D",
        "chatID": "chat526745548997352517",
        "transferID": "72D48466-A535-4C93-AA78-6791A8AB53F1",
        "fromMe": true,
        "time": 1615577622383.0002
      }
    },
    {
      "type": "text",
      "payload": {
        "chatID": "chat526745548997352517",
        "fromMe": true,
        "parts": [
          {
            "type": "text",
            "string": "We'll show up and he'll be like"
          }
        ],
        "id": "p:1/D3DBDAD8-5EEE-4D72-ADB7-20A74501706D",
        "time": 1615577622383.0002,
        "text": "We'll show up and he'll be like",
        "acknowledgments": [
          {
            "chatID": "chat526745548997352517",
            "sender": "*my friend's email*",
            "associatedID": "p:1/D3DBDAD8-5EEE-4D72-ADB7-20A74501706D",
            "id": "am:F0716C13-6871-4286-A4A6-3CF3FB0B25CD",
            "fromMe": false,
            "time": 1615577636093.2012,
            "acknowledgmentType": 2003
          }
        ]
      }
    }
  ],
  "service": "iMessage",
  "timePlayed": 0,
  "sender": "e:*my email*",
  "isDelivered": false
}

Client loses connection, can't automatically reconnect

Client will periodically lose connection to server, with a "no internet connection" banner at the top. Device still has internet, and this can be fixed by manually tapping "retry" on the banner. While the client is in this disconnected state, iMessages can't be sent or received until manual intervention.

Inconvenient, and since I don't use iMessage chats that often, this happens 9/10 times I go to send something. Doesn't seem to be an internet issue since other apps work fine.

Screenshot_20220422-155452

Reconnect to the server as soon as the app is opened (AirMessage Cloud)

When using AirMessage Cloud, the app will not maintain a connection in the background. This can cause issues when the app is restored to the foreground, where a connection to the server will not be restored without explicit user interaction.

Instead, the app should restore its connection to the server automatically when brought to the foreground.

Reported by Avibee and others on Discord: https://discord.com/channels/992925221256450068/992929582439202908/1004535441212571769

When attaching picture to message, wrong image shows in thumbnail

When attaching a picture to a message, the correct picture sends, but the small version that appears above the textbox is not the same image I selected. It is always the same image, I believe it's always the same picture that was first sent from the device.

This error occurred on my Galaxy Note20 Ultra, but after a factory reset the issue does not occur (at least for now). I recently got a Galaxy Tab S8+ and am experiencing the same problem.

Couldn't download attachment: request timed out

Thanks for AirMessage. It's a great app.

I received an image today but the attachment couldn't download and gave an error:

Couldn't download attachment: request timed out

I tried to download it multiple times and it immediately gives the error again without waiting for any timeout. Force quitting the app and trying again didn't have an effect.

I tried using the "sync recent messages" command as well but that wiped out all my local messages.

There's a few others on Reddit with this problem as well.

Client version: FDroid 3.5.1
Server version: 4.1.3
Connected to server using manual setup
OS: CalyxOS 3.8.0 (Android 12)

[Bug] Videos with the HEVC encoding are not able to send over iMessage (also possible BT.601 error on Catalina)

EDIT - After some testing, Tagavari was able to send a BT.601 video over AirMessage on both 10.13 High Sierra and 11.0 Big Sur. I was able to send the same video over AirMessage on 10.14 Mojave. u/aayyyyyyyyyyyy is not able to send the video through their AirMessage server, which is running on Catalina in a KVM. I am not saying that there is no issue with the BT.601 color profile, but it definitely needs more investigation. In the meantime, I did face quite a few problems with HEVC when performing these tests. Below is my original comment on this issue.

The BT.709 color profile is supported by iMessage, however. Below is some ffmpeg code that transcodes the unsupported videos to the supported profile.

-c:v libx264 -q:v 5 -c:a copy -ab 192k -ar 44100 -crf 15 -color_primaries bt709 -color_trc bt709 -colorspace bt709

Credit where credit is due, taken from u/aayyyyyyyyyyyy at > https://www.reddit.com/r/AirMessage/comments/n3y1ia/cause_for_why_some_videos_fail_to_send/

[Feature Request] Ability to backup SMS messages

As far as I can tell there's no way to backup "green" messages in AirMessage meaning I can't reinstall or transfer to another device - would be nice to have a csv or other arbitrary format export/backup option.

Something like this would be very helpful if it meant we could migrate messages to a different messaging app

[Feature Request] Allow both AirMessage Cloud and Manual Connections

I like to be able to use AirMessage Cloud (especially for the web client, and because it seems more stable), but when the server is using that connection method, it is impossible to connect to AirMessage from an Android phone without Google Play Services. It would be nice if there was still an option to connect manually when using AirMessage Cloud.

This is sort of related to my microG problem in this issue: #14 (comment)

This could be a pretty niche use-case, but I can imagine a manual connection fallback option would be useful for other reasons as well. Maybe to use AirMessage Cloud most of the time, but switch to a manual connection if GCM is blocked on a certain network or in a certain jurisdiction, for example.

[Bug] Duplicated Messages

I am running the latest version of AirMessage (3.1.10) on my Samsung Galaxy S9+, and whenever i receive a message when the app is closed the exact same message appears twice. The duplicated messages go away when you resync.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.