SimpleMobileTools / Simple-Dialer

A handy phone call manager with phonebook, number blocking and multi-SIM support
https://www.simplemobiletools.com/
GNU General Public License v3.0
626 stars 250 forks source link

Missed call notifications do not arrive #5

Open qw123wh opened 4 years ago

qw123wh commented 4 years ago

The notification of the missed call and the call from the blocked number do not arrive.

tibbi commented 4 years ago

that is the responsibility of the system. And I dont want to see notifications from blocked numbers, thats why they are blocked afterall.

QuickJack commented 4 years ago

I have seen a similar problem using latest 5.1.0. After installing Simple Dialer, the app asked me if I wanted to switch my default phone (Google Phone) to Simple Dialer. After manually adjusting some rights, the apped worked and received calls. But missed calls are still reported via Google Phone.

qw123wh commented 4 years ago

exact quickjack is the same thing that happens to me. It is as if simple dialer leans on the system dialer, but if I disable the system dialer or in extreme case I uninstall it with root, goodbye missed calls I will never know if I received a missed call.

tibbi commented 4 years ago

you mean missed while your device was off? Or ones that you see ringing but not do anything? The notification after the ringing ends disappear?

qw123wh commented 4 years ago

example i mean i'm in a room and i can't hear the phone ringing in another room either because i put the phone in silence or because i'm watching tv with a very high volume etc. Now if I have set simple dialer as the default app and have disabled or uninstalled (with root) the pre-installed dialer app on my phone. When I check the phone I don't see any notification telling me that I have received a missed call.

tibbi commented 4 years ago

aha, well that wont be added anytime soon, it needs a whole custom connectionservice implementation. The current version indeed just relies on the stock app in some way.

QuickJack commented 4 years ago

@tibbi: Yes, it's the notification that is received after a missed incoming call.

I think, this is an important feature. It would be great to be able to fully replace Google Phone.

Saijin-Naib commented 4 years ago

Reporting same behavior here with system Dialer disabled (without root, as it is allowed on my ROM)

ltguillaume commented 4 years ago

aha, well that wont be added anytime soon, it needs a whole custom connectionservice implementation. The current version indeed just relies on the stock app in some way.

Ouch, I understand that that'll take quite a bit of work, but I suppose there are lots of people who want this app as a complete replacement of the stock Dialer, for example because the stock Dialer will indefinitely bitch about Google Play Services's permissions every single time you (get a) call. Those with root access will probably want only one Dialer app installed.

I hope you'll maybe reconsider the priority status of this issue because of this.

ltguillaume commented 4 years ago

Any news on this? This is deal breaker for many, I'm betting.

tibbi commented 4 years ago

not really, it seems to work just fine to most people including me. I dont hear others complaining about it, it must be some device specific glitch.

ltguillaume commented 4 years ago

Well, it's not a real replacement if it still needs the stock Phone app. And I'd say it's rather messy and RAM-unfriendly to have two apps handle your calls simultaneously.

qw123wh commented 4 years ago

the missed call notification arrives on the stock dialer. So today the app is not independent. The notification should arrive on your app, because if I deactivate the stock dialer = goodbye notifications of missed calls

qw123wh commented 4 years ago

in this app https://github.com/Chooloo/call_manage notifications work perfectly and also the problem #9 has been solved get help from this app

Saijin-Naib commented 4 years ago

not really, it seems to work just fine to most people including me. I dont hear others complaining about it, it must be some device specific glitch.

I'd be surprised if it was device-specific as I doubt many have the TeraCube One like I do.

ltguillaume commented 4 years ago

not really, it seems to work just fine to most people including me. I dont hear others complaining about it, it must be some device specific glitch.

I'd be surprised if it was device-specific as I doubt many have the TeraCube One like I do.

I'm inclined to say you're right about this. I can confirm the issue with a Samsung S5 and a Nokia 3, both running Android 9 (LineageOS and stock, resp.). On the Samsung I also had an issue that when I went into WhatsApp during a call, there was no way whatsoever to get back to the dialer screen: the "Call" notification was gone and starting the Dialer app only showed the Contacts/Favorites etc. Activity. This was a few versions ago, though, so it might have been solved (if it occurs again, I'll create an issue if nothing similar has already been mentioned). Point is, notifications are an inherent part of a Dialer app.

I also appreciate the fact that it will cost a lot of extra work, don't get me wrong, but I do feel this is a crucial part of a proper dialer app.

Saijin-Naib commented 4 years ago

Android 9 is what both Teracube I can reproduce it on have... Maybe that is the commonality?

qw123wh commented 4 years ago

@Saijin-Naib no it's on everyone so miui android 9, miui android 10. Aosp android 9, aosp android 10. Huawei android 7, samsung with android 8. The android version has nothing to do with it. Not a problem with your phones

ltguillaume commented 4 years ago

That's what I suspect as well.

offa commented 4 years ago

Well, it's not a real replacement if it still needs the stock Phone app. And I'd say it's rather messy and RAM-unfriendly to have two apps handle your calls simultaneously.

Agreed, the current situation is really annoying. I'd love replace the stock dialer eventually, but without getting call notifications it's still not an option for me. :cry:

meximan commented 4 years ago

I agree not knowing who you missed a call from is very important. This is a "top 3 priority": otherwise there's no point in using this app if it cannot completely replace the native dialer in rooted or custom ROM phones.

meximan commented 4 years ago

A good alternative in the mean time is Open Contacts (fdroid.org) which allows for encrypted contacts and records missed calls and outgoing calls. (just make sure you don't remove com.samsung.android.providers.contacts if you have a Samsung phone otherwise it'll keep crashing).

QuickJack commented 4 years ago

Incoming calls are handled by com.android.server.telecom(https://gossipfunda.com/com-android-server-telecom/). This works independently of the default dialer com.google.android.dialer which can be disabled. Simple Dialer logs missed incoming calls as expected. But it doesn't show any notification.

Missed incoming calls are shown on the lock screen via com.android.server.telecom. After unlocking and clicking on the notification it launches the default dialer com.google.android.dialer. It does so even if the system's default dialer entry is changed to Simple Dialer. This is the actual problem. The question is how can we manage to force com.android.server.telecom to launch Simple Dialer?

IT-Exilion commented 3 years ago

Waiting for this feature as well. At the moment stuck up on default dialer on GrapheneOS

qw123wh commented 3 years ago

Maybe this can help.

https://source.android.com/devices/tech/connect/call-notification?hl=en

Please tibbi read this. Perhaps this will solve this problem

tibbi commented 3 years ago

well, it just proves that Im right. Missed call notifications come from the system, not Dialer

qw123wh commented 3 years ago

Sorry so how do you explain that only your dialer in the whole play store has this problem? The dialer certainly has something to do with it, because the calls part is managed by a simple dialer, but the notifications of missed calls are managed by the system dialer, but this problem does not happen with other third-party dialers.

tibbi commented 3 years ago

I dont know how exactly it works, contact and call handling on Android is a huge mess that can differ a lot depending on the manufacturer. This is the latest app, of course it can have glitches.

QuickJack commented 3 years ago

Maybe this can help.

https://source.android.com/devices/tech/connect/call-notification?hl=en

Please tibbi read this. Perhaps this will solve this problem

@tibbi is right in saying that incoming call notifications are "handled by the system" ("Done by Telecom" according to the aforementioned article). But this is true for Android versions prior to 7 which corresponds to API level <24. It's important to note that Simple Dialer currently has minSdkVersion set to 23 in app/build.gradle (Android 6.x).

A lot of people are using newer smartphones and Android versions which leads to inconsistencies as described in the article. I think, it would be best to increase minSdkVersion to 24.

The provided AOSP Dialer sample app shows how all the described functionalities can be handled inside the app itself.

meximan commented 3 years ago

I would suggest using Open contacts because it shows missed calls. It also save contacts and can be used in combination with simple dialer and simple contacts. Downside is your get two notifications but the more the merrieršŸ˜

tibbi commented 3 years ago

Im using the app with my Android 10 and it works just fine

meximan commented 3 years ago

I don't get a missed call notification in Android 11 from simple dialer nor simple contacts. I actually have to look through call history in simple dialer to be aware that I missed a call.

ltguillaume commented 3 years ago

@meximan I don't know why this should be recommended: a contacts app should stay away from handling (missed) calls imho.

meximan commented 3 years ago

Functionality is a priority (no point in not realizing you have a missed call until later or having to constantly check your phone for missed calls of you have to have it on silent for example. It's OK though I am using open contacts from f-droid for the missed call functionality.

ltguillaume commented 3 years ago

I meant that your (constant) recommendation of Open Contacts doesn't help imho. It's not a solution.

meximan commented 3 years ago

It does what I need it to, so it's a solution for me. No problem I won't mention it again.

hoi2828 commented 2 years ago

I had the same problem on my samsung phone. Trying various settings for the system phone, I found a solution that seems zu work: Set simple dialer as default app, but keep permitting system dialer access to calling lists and contacts. It works, but of course the system app can still spy my contacts, so it would be great to replace it completely by simple dialer.

tibbi commented 2 years ago

Simple Dialer still relies on the system, doing a fully standalone solution to everything calling related would be a nightmare. Especially as I know that such things vary a lot depending on the system version and the device manufacturer. So dont expect having any drastic changes there anytime soon. I have done quite a bit of research there back when I was developing the app and I had no idea which things do I actually have to take care of, what is handled by the system, what by the carrier etc.

hoi2828 commented 2 years ago

Ok, I understand the problem. Now I also tried meximan's solution with Open Contacts installed parallelly for the missed calls functions. That also works. Ist that better for privacy than the system dialer? @meximan what do you think? I know that this question is not directly about simple dialer, but it's an issue in some cases for people who desparately want to use it ;-)

genodeftest commented 2 years ago

@hoi2828 : If you want to protect yourself from the default call application spying on you and sending your data to Google, you can try using NetGuard or some other Firewall to prevent it from talking to any service on the internet.

Clav12 commented 2 years ago

try to take a look at this commit: https://github.com/android-dre/platform-packages-apps-Dialer/commit/cc42b5953588110cc89b43e72d2b6579757017a1

It is explained very superficially here too. What interests us is ā€œBehavior in Android 7.0 and laterā€

https://source.android.com/devices/tech/connect/call-notification

biopsin commented 2 years ago

On LinageOS-18.1 I uninstall the system dialer for user 0 and set Simple Dialer as default and that works without issues. This is governed by qualcomm in my case, so disabling com.android.phone will break the whole system services chain and that includes the system messaging service too.

Clav12 commented 2 years ago

@biopsin The system dialer has nothing to do with this. There is no point in uninstalling the lineage os system dialer. Even if you uninstalled the stock dialer and even if you installed a simple dialer as a system app, you still didn't fix anything. In your case, notifications are managed by the "Telecom" app and then the system manages them. I am 100% sure that in your case, however, notifications are not managed by a simple dialer, but are managed by "Call manager (Telecom, Qualcom ..)". Even if you didn't uninstall the lineage dialer and set the default simple dialer, it was similar to the situation. For example, if you try to install the Google dialer it works perfectly. Missed call notifications work correctly only on a dialer app on the play store, the app is "ACR Phone Dialer". ACR Phone however is closed source.

The point is to implement this function, but the problem is that there aren't many examples of how to add this function. The only dialer on the Play Store that has this feature is closed source, so it's difficult. I am convinced that the key to solving this problem is that of my previous comment which is: MissedCallNotifier.kt

CallLogNotificationsService.kt

MissedCallNotificationReceiver.kt

biopsin commented 2 years ago

@cicciobellohalabua2 thats what I wanted to get across is that the missed notifications are handle by the system services not the dialer app and therefore its out of scope for SimpleMobileTools Dialer :)