Giter VIP home page Giter VIP logo

openpods's People

Contributors

adamzvolanek avatar adolfintel avatar barelelbaz avatar christiangnrd avatar d4rken avatar domi04151309 avatar electric1447 avatar f0s3 avatar gijuno avatar hadrienbecle avatar hargabt avatar iris-mobile-accessibility-repair avatar jffernandez avatar jplitza avatar mauville avatar maximiliangaedig avatar maxwelltauro avatar myungjunchae avatar nautilusx avatar nichbar avatar oddlyspaced avatar peterdavehello avatar reflexe avatar vistaus avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openpods's Issues

Update translations

The German, Spanish and Chinese translations need to be updated because a few strings have been added in Alpha 10.

A question about battery values

Hi. Thanks for your contribution to the opensource android community.
I have a question regarding how battery values are encoded inside the payload.
You said they are storing in range 0-10(0-100%, step 10). But how the iPhone shows battery charge with step by 1%?

Maybe you could recommend some resources about the reverse engineering of AirPods signal?

Best regards,
Serhii.

Fake AirPods

Will you try to implement fake AirPods?
Or can you give a hint how you discovered how to get the percentage on the real ones?

Unhide?

So I accidentally did the "hide app" action in the app settings. How do I un-hide it?

Any chance you could document some pointer about how to undo the app hiding either in the app itself or at least in the README?

Notification gets stuck under unknown circumstances

For reasons that are currently unknown, occasionally, the notification will get stuck in an indeterminate state. It seems to happen randomly after the screen has been turned off for some time with the AirPods connected.
When this glitch occurs, the application becomes unresponsive to bluetooth events (switching on/off, connecting/disconnecting AirPods) and needs to be terminated and restarted.

If you're experiencing this issue, just know that I'm aware of it and the application won't reach 1.0 with this garbage bug.

Hard to see information on dark theme

Screenshot_20190508-141731

When Android is set to dark theme the icons are black and really hard to see (and the numbers look very grey) can't see notification icon is status bar either..

Disclaimer: I am using Android Q beta. Not sure if it's Android or the app...

Inverted colours in Pixel 3 dark theme

Hi! Really love OpenPods and I've been using it since I got my phone. There's one little issue when using it with the pixels dark theme though: The whole notification is inverted, not just the background so the AirPods and Case are completely blacked out. This isn't really a huge issue but just a small cosmetic thing. Can it be fixed? Thanks!
Screenshot_20200125-143808

Powerbeats Pro - Working

Hi, I am pleased to report that my Powerbeats Pro earbuds are fully functional with the app. No issues thus far. Minor enhancement would be purely cosmetic and thats just changing the icons from airpods to the powerbeats art. Please let me know if you would like any debug info. Thank you for your work.

Occasional Blank notification popup with airpods pro

Hello,

First of all, thank you for your work on this project.

Today, with my airpods pro, I am receiving a completely blank OpenPods notification (there are two notifications here - one for openpods, and a second one for kdeconnect):

I'm using LineageOS 9 on a Pixel XL 128GB.

I tried clearing the storage for openpods, but the issue remained.

I just got my Pro Airpods yesterday and didn't have the issue until today - not sure what has changed.

Please let me know if there is any additional information I can provide to assist in resolving this issue.

Cheers!

Reverse engineering AirPods clone

Hi, I've just bought a new pair or AirPods clones (Urbanpods, I suspect them being the same as the i2000 though).
Your app does not work by default but I did manage to fork your repo and to reverse engeneer how they report the battery percentage.
Basically, instead of being encoded in the 12th,13th,14th nibble of the manufacturer info it lies on the 12th,13th and 14th byte and works a little bit differently (the actual percentage is reported and the first bit indicates if it's charging).
The problem I have is that as soon as the earpods connect with the phone I cannot get their manufacter info anymore (basically the device goes totally invisible to any btle scan app).
This way I can only read the battery level once when your app detects them but they have not gone invisible yet.
Do you happen to know a way to read the manufacter info directly from the connected device?

Also, how do the original AirPods work? Don't they go invisible as soon as a phone is connected? I don't have a pair of those to try.

Thanks for your help and sorry for my English, it's not my first language.

Notification icon very big

First of all: Thanks for the application, it is very useful :)

Secondly, I am not sure why the notification icon is so much larger than other icons on my phone. See here:
Untitled2

I fixed it by resizing the notification_icon.png resource (maybe that could be the wrong approach …):
Untitled

I can make a pull request if you want :)

Cheers

Dark Mode Issues

The dark notification doesn't blend in nicely because different OEMs use different default background colors. Also, the text color isn't 100% white or black because of Material Design standards.

Notification widget becomes unstable when close to other users' Airpods

I noticed this on the metro last week, the notification widget appears to be highly unstable, swapping between my own Airpod pros and regular Airpod icons while also showing various battery levels.

My own were at 25% and every 3-5 seconds the notification widget would report them as normal Airpods at 95% or some other device around me - screenshots.

I think what was happening was that it was reading battery and device information from other people around me (the behavior stopped as soon as I left the metro car). I find this odd though, I thought Bluetooth data like this was encrypted and only available to paired devices? How is it picking up this meta data from unpaired devices? It seems if nothing else the increased data processing from reading meta data from other people with Airpods is likely to drain your battery life much faster.

Feature Request: Smaller notification?

Hi!

I have a few feature requests/ideas/suggestions that would help users to save space in their notification area while using OpenPods:

  • kdeconnect-like collapsible thin notifications: It would be fantastic to have an option for a smaller text based notification. For example, kdeconnect has a very thin notification that can be expanded when pressed. This saves a lot of space in the notification area. It would be great for OpenPods to have something like this
    • EDIT: this actually already appears to be the case; not sure why I wasn't able to get it to collapse earlier
  • Text-only notifications: It would also be great to have the option of simply showing the Left% and Right% as a text only notification to save space
  • Don't notify when location unavailable: The location notification is very helpful, but it would be great to have an option to disable this to save space in the notification area.

Location

Hey there, is there a reason this app needs permission to access my location?

Ideas for new features

Loving the app so far, thanks for your efforts.

Here's a small wish-list of features that I've seen on other play store apps so I'm fairly certain they're all possible although how difficult I can't say...

  1. Overlayed battery indicator on case open
  2. In your always-on notification battery indicator add a toggle for airpod pro features (Noise Cancellation, Transparency mode and Off). I know you can long press on the Airpod Pros to toggle between NC and Transparency mode but just OFF seems to be an impossible state to gain access to without software help, here's how it's shown to iOS users.
  3. Rebinding of multi-clicks. I've seen other apps that allow you to rebind what happens when you click once/twice/three times, etc...
  4. Ear Detection: When you take out either Airpod, any music/media playing on the device will pause and restart when you put the Airpod back in.

Android 10, Galaxy Note 10 - the app refuses to work if the location is turned off (while the permission is granted)

This essentially requires having the Location turned on all the time - that was the reason why I refused to use the app. AirDroid from GPLay is OK with Location off.

P.S.: all that stuff with location permissions make a bad impression considering that app only aimed at showing battery level. I see that all GPLay Airpods apps require that permission. Though having some mode without location permission would be a killer feature to me (even if it'll require manual refreshing of the status of the app/battery).

android.os.TransactionTooLargeException: data parcel size 1040360 bytes

I see these pretty regularly on AOSP QQ2A.200405.005 on a Google Pixel 3:

04-26 17:28:50.883 32372 32393 E AndroidRuntime: FATAL EXCEPTION: Thread-2
04-26 17:28:50.883 32372 32393 E AndroidRuntime: Process: com.dosse.airpods, PID: 32372
04-26 17:28:50.883 32372 32393 E AndroidRuntime: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1040360 bytes
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.app.NotificationManager.notifyAsUser(NotificationManager.java:497)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.app.NotificationManager.notify(NotificationManager.java:444)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.app.NotificationManager.notify(NotificationManager.java:420)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at com.dosse.airpods.PodsService$NotificationThread.run(PodsService.java:332)
04-26 17:28:50.883 32372 32393 E AndroidRuntime: Caused by: android.os.TransactionTooLargeException: data parcel size 1040360 bytes
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.os.BinderProxy.transactNative(Native Method)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.os.BinderProxy.transact(BinderProxy.java:511)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.jav
a:2791)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        at android.app.NotificationManager.notifyAsUser(NotificationManager.java:494)
04-26 17:28:50.883 32372 32393 E AndroidRuntime:        ... 3 more

Leaving the phone running idle for a few hours with logcat streaming to disk, I see:

04-25 21:00:47.305  3715  3749 E AndroidRuntime: Process: com.dosse.airpods, PID: 3715
04-26 15:40:43.276 18743 18764 E AndroidRuntime: Process: com.dosse.airpods, PID: 18743
04-26 16:01:16.537 29185 29206 E AndroidRuntime: Process: com.dosse.airpods, PID: 29185
04-26 16:19:36.458 30000 30021 E AndroidRuntime: Process: com.dosse.airpods, PID: 30000
04-26 16:40:07.503 30816 30837 E AndroidRuntime: Process: com.dosse.airpods, PID: 30816
04-26 16:56:25.907 31963 31984 E AndroidRuntime: Process: com.dosse.airpods, PID: 31963
04-26 17:12:45.710 32039 32060 E AndroidRuntime: Process: com.dosse.airpods, PID: 32039
04-26 17:28:50.883 32372 32393 E AndroidRuntime: Process: com.dosse.airpods, PID: 32372
04-26 17:44:49.790 32683 32704 E AndroidRuntime: Process: com.dosse.airpods, PID: 32683
04-26 18:00:50.762  1036  1071 E AndroidRuntime: Process: com.dosse.airpods, PID: 1036
04-26 18:16:45.472  1172  1212 E AndroidRuntime: Process: com.dosse.airpods, PID: 1172
04-26 18:34:13.700  1662  1701 E AndroidRuntime: Process: com.dosse.airpods, PID: 1662
04-26 18:55:49.690  2021  2063 E AndroidRuntime: Process: com.dosse.airpods, PID: 2021
04-26 20:14:16.450  2516  2541 E AndroidRuntime: Process: com.dosse.airpods, PID: 2516
04-26 20:56:19.701  4138  4159 E AndroidRuntime: Process: com.dosse.airpods, PID: 4138

I don't think my AirPods were even removed from the case when these errors occurred.

I believe I was running OpenPods 1.3 (13) from F-Droid. Not positive because I uninstalled it.

The crash signature looks similar to #47 but in my case, the parcel size is on the order of 1MB instead of 3MB.

Case status while charging?

According to #4, AirPods are supposed to show the charge status of the case while it's charging, even if the case is empty.

In my own testing and reverse engineering, I noticed that my AirPods send the case charge status only when there's at least 1 pod in the case, otherwise they just report the case as disconnected. My AirPods also don't show any difference in the data that they send when the case is charging compared to when it's not, so I was unable to identify where this additional case charge status is.

Despite my best efforts, I was unable to figure this one out, so if you're willing to try, the code that decodes the AirPods status beacons is in PodsService.java, and it is fully documented.

If you can figure this out, I am willing to reward you :)

Make it hard or impossible to upload to Google Play

I don't want this app to be distributed through Google Play so I'm looking for ideas on how to make it hard or impossible to do it. This is because I noticed that some assholes redistributed this as a paid app or with ads, without even crediting the original app, and I had to send several DMCA requests.

So far, here's what I came up with:

  • The app already intentionally violates Google Play policies on disabling battery optimization but they don't seem to actually check this
  • Setting the app's target SDK to less than 26 (minimum for Google Play) and make sure the background service breaks if SDK 26 or newer is used

Ideas?

AirPods Pro pictures on notification bar

Hi, and amazing job for this fantastic little app. I wanted to know if there were plans to display the right types of headphones in the notification bar? It's still good More class to have the images of the Airpods pro when they are connected. Thanks again for the job contributed here!
Screenshot_20200110-095145

scanning too much

Hello!

I've recently become aware that this app is preventing my phone from entering deep sleep. It's issuing a wakelock anywhere from 15 to 40 times a minute, all the time. I was probably the one who requested the feature that forced you to do that 😄

Is there any way you can stop the scanning unless it's a) connected or b) manually requested?

Thanks!

AirPods 2 are not detected.

Hi. I've downloaded your app using the direct link provided in the readme, and opened my Airpods 2 case when they are connected to the bluetooth and gps is turned on(just in case it is needed), allowed all the app wanted me to, yet there is no notification while I have your app opened on my Xiaomi Redmi 6. I am a developer myself, so if any additional info needed (data from android studio or anything else that might show why the app doesn't seem to detect the pods even though the music is playing through them), please let me know. IPhone 8 shows the firmware version as 2A364, were 1A661 before iphone has auto updated them.

All earphones

What about working with all the headphones? I just want to get one common and open application, without ads and problems with Google services.

AirPods Pro?

I need to know if the app works with the new AirPods Pro.

If it does, I also need some way to distinguish them from regular airpods to show the proper images.

issues

Connection: Shows battery level on any local set of airpods. Regardless if they have ever been connected to phone or not.

Icon shows up constantly even when not near airpods.

The icon image looks folded when it's on the lockscreen due to the image being too tall.

Verizon Note 9 on Android 9.0

Device support in regards to Bluetooth LE

Recently, i've tried OpenPods on multiple devices, but only on one of these did it ever work.

After looking around this repository a little bit and noticing some specific mentions of Bluetooth LE, i came to the realization that the device on which OpenPods is working on is my only Android with Bluetooth LE support, so i'm wondering:

Is Bluetooth LE hardware support a strict requirement for OpenPods to function?

If yes, it would be great if this could be communicated more clearly towards anyone using the app. The only mention of Bluetooth LE that i could find among the README of this Repo, the description on F-Droid and within the app itself was the little note displayed during the first start of the app, explaining why the bluetooth and run in background permissions are requested, and i was completely unaware of it until right now - after actively looking for it. As it is only shown once and easily brushed away if you don't care about and simply allow each permission this notice can easily go undetected as in my case. And looking at it right now, i'm suspecting that i even did notice it once but without giving the "LE" part any importance and rather just focusing on the "Bluetooth" part, which was obvious to me.

So yeah, if applicable, any notice in the form of "It's possible that your device lacks the hardware support to run OpenPods. If it isn't capable of handling Bluetooth LE, OpenPods will not work." anywhere in the README, F-Droid description, the application main screen or maybe even a one-time popup would be very nice.

Notification should report most recent battery life report for case and in-case Airpods

First off, great thanks for the app. Appreciate that it's FOSS and on F-Droid.

The battery life for the case and any Airpods left in the case is reported only briefly, and then only the in-ear Airpods continue to report battery life. The notification should ideally continue displaying the most recently seen battery life reports for the case + Airpods while there is still at least one Airpod connected.

In case it's useful to know, I am using Airpods Pros.

Notification layout issues in #65

@Electric1447 I merged your PR since it works well, however I noticed two issues with the new notification layout:

  • When the device is set to dark mode, the background is still white, making the text unreadable (you probably forgot to remove my hacky workaround to force the colors in before dark mode was supported)
  • The size of the charging icon is not consistent

Screenshots:
Screenshot_20200524-073834_Lawnchair
Screenshot_20200524-073921_LineageOS_Settings

I'm sure I can fix those issues myself but since it's your PR, it's probably best if you could do this to avoid introducing other glitches.

Quick question

Is there anyway I can use OpenPods without GPS location sorry for being a pain.

Add gestures?

Sorry, this not is a issue, but is a one feature request, ist possible add typicaly gestures? for for tap

thanks!

AirPods doesn't go

Hello, I have tried to install the application and when connecting the AirPods the application does not detect them.

App Crash after location toggle

Description

The app crashes when the location is turned on after being turned off for a long time.

Log

FATAL EXCEPTION: Thread-3
Process: com.dosse.airpods, PID: 19638
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 3312968 bytes
	at android.app.NotificationManager.notifyAsUser(NotificationManager.java:503)
	at android.app.NotificationManager.notify(NotificationManager.java:450)
	at android.app.NotificationManager.notify(NotificationManager.java:426)
	at com.dosse.airpods.PodsService$NotificationThread.run(PodsService.java:332)
Caused by: android.os.TransactionTooLargeException: data parcel size 3312968 bytes
	at android.os.BinderProxy.transactNative(Native Method)
	at android.os.BinderProxy.transact(BinderProxy.java:547)
	at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:2962)
	at android.app.NotificationManager.notifyAsUser(NotificationManager.java:500)
	... 3 more

Check on case charging status

The airpods are always broadcasting battery status while the case is plugged in. Would be nice to be able to check on the % charge the case is at without having to connect.

Airpods 2nd gen don't work

I'm not sure if this is maybe out of scope for this project. However, Airpods from the 2nd gen don't work, mostly the battery status is not displayed.

Dark mode?

First off, I am so happy I found this app, tried every app in the Play Store, and everything is trash. Great work with this one! Just what's needed and no bloatware.

Using this on my Note 10 with Dark mode enabled, but the notification is white. Would it be possible to have a Dark mode for the notification?

Here's an example of a Play Store app doing dark notifications: https://lh3.googleusercontent.com/qx861-4RgJ_KpAV8LUC9z6yncolCLaVg0y_3YKDy3r_rrWTbCPYJr4dQzKCEYy3kCIo=w1920-h978

Thank you!

Issues after restart

I am having problems with OpenPods sending notifications after a restart. I am on a Oneplus 7 pro and I have to reinstall the OpenPods app to get it working again.

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.