2019c05
Merge branch 'gateway-icon'
Click to expand commit body
* gateway-icon: Show gateway avatar on in call screen
Stephen Paul Weber created
2019c05
Merge branch 'gateway-icon'
* gateway-icon: Show gateway avatar on in call screen
Stephen Paul Weber created
8c08dee
Ask user for microphone permission from dialler integration
We can't ask them for it directly. The library I am using here will first check if the permission is already granted. If so onPermissionGranted will fire and we will start the call. If not, the Connection will be created in a dialling state and a notification will appear saying that the app needs additional permissions. Once the user taps the notification they will then be asked to allow microphone access. If they say yes, the call will proceed. If they deny, the call will terminate.
Stephen Paul Weber created
ce9547d
Show gateway avatar on in call screen
Stephen Paul Weber created
4b0ea5c
Need to sync also when gateways change
Stephen Paul Weber created
8a046bb
Merge branch 'pstn-gateway-can-call'
* pstn-gateway-can-call: PSTN gateways contacts can do voice calls
Stephen Paul Weber created
f3fb32a
Merge branch 'sync-tel-contacts'
* sync-tel-contacts: Sync system contacts by phone number
Stephen Paul Weber created
8386fbe
Merge branch 'dialer-integration-2'
* dialer-integration-2: Mostly rewrite dialler integration Much prettier calling account
Stephen Paul Weber created
3f4d9b7
Sync system contacts by phone number
Using the same logic as Quicksy, but not submitting to an API just assume that tel@pstn-or-sms-gateway is a valid Jabber ID. Does not add to roster or reveal presence or send anything to a server, just affects local UI.
Stephen Paul Weber created
c03a8b7
write photos to DCIM/Camera
Daniel Gultsch created
282109d
add openkeychain to queries
Daniel Gultsch created
a620cb1
PSTN gateways contacts can do voice calls
If we are in a fallback situation (no presence) then always allow AUDIO if domain matches a known PSTN gateway.
Stephen Paul Weber created
6168029
Mostly rewrite dialler integration
Doing it properly this time. No Intent, no popping a second activity, just instrument the call into the Android UI. This turned out to be a bit easier than expected. The ConnectionService does indeed run inside our app process everywhere it matters, so we can reuse the machinery from elsewhere to get a reference to XmppConnectionService. Asking JingleConnectionManager to send propose is enough to kick off all audio, etc. Put in a guard that the JingleConnectionManager expects so that we won't try to start a call if isBusy is true (that is, if another call is in progress), and just return a failed connection BUSY in that case. Added a flag to XmppConnectionService that we set when using the dialler integration so it will temporarily ignore phone call state and not hang itself up. The app still shows a separate call notification, so you see two in-call notifications. You can also go into the app during the call and manually pull up the call UI there. If you do anything in either call UI it will work and sync state, so that's not dangerous just perhaps odd. Kept the connection address as a tel: for contact integration in the call history, but use our normalized version now instead of whatever we got raw from the system. Add support for post-dial DTMF including 2-second pause with comma and manual-length user-intervention pause with semicolon. Dial with 100ms break between tones. Doing no break at all mostly works in practise, but not for two identical tones in a row, this seems to be enough in my tests. When using a post-dial string from contacts the UI shows more/different state than it should and at least in my emulator plays a different ringback tone for one ring before switching. Very odd, as though it's partially ignoring our Connection object's settings. Audio routing has not been tested yet (for speakerphone, bluetooth, etc).
Stephen Paul Weber created
6fb465f
don’t query packages before attaching something
Daniel Gultsch created
2cc49e5
bump targetSdk
Daniel Gultsch created
d6be6dd
use full file name for all new files
Daniel Gultsch created
8abacd2
use new storage location for backup and recordings
Daniel Gultsch created
6061761
rename method that expand filename
Daniel Gultsch created
c0d30fd
Much prettier calling account
Register the service avatar, perpy background for call UI, and split the User's JID into the headline with the service JID (eg "cheogram.com") only shown in short description.
Stephen Paul Weber created
120406c
Totally optional sentry
Stephen Paul Weber created
b3ccb21
Optional sentry support
Stephen Paul Weber created
6d44d44
Put more info in the exception for debugging the common crash
Stephen Paul Weber created
1a450b8
Say XMPP a lot less and Jabber a lot more
To be more user friendly
Stephen Paul Weber created
af3e82b
Merge branch 'contact-links'
* contact-links: Show contact name in an xmpp: link
Stephen Paul Weber created
14000d5
Show contact name in an xmpp: link
When rendering an xmpp: link, show not the raw URI, but the contact name (if there is one) or JID (if there is not).
Stephen Paul Weber created
3a38c76
Get libwebrtc using gradle
Stephen Paul Weber created
ed2f7f8
Fix typo
Stephen Paul Weber created
7be174d
Merge branch 'phoneaccount'
* phoneaccount: any means none means false (ie there exist) unless upstream reports a reason Small fix to address cheogram adding "+1" when making calls from the default dialer. Now only adds "+1" or "+" when necessary. First version of dialer integration Revert "Intercept DIAL and CALL to tel: and rewrite to cheogram"
Stephen Paul Weber created
ffc1daa
any means none means false (ie there exist) unless upstream reports a reason
Stephen Paul Weber created
2924ec0
Small fix to address cheogram adding "+1" when making calls from the default dialer. Now only adds "+1" or "+" when necessary.
root21 created
7296a11
First version of dialer integration
When a contact comes online, we check if it is a gateway/pstn. If so, we register a new PhoneAccount with the OS for the account+gateway pair. When the roster is being saved after any change, we check for any items that have been removed and remove any associated PhoneAccount registration. To activate a PhoneAccount, a user navigates to Phone App > Settings > Calls > Calling Accounts. When a call is placed from the Phone app using one of our PhoneAccount, the ConnectionService is called by the OS. Its job is to place the call and keep the OS calling UI up to date via a returned Connection subclass. Calling in Conversations is currently rather tied to the UI, so rather than seperate it out for this prototype, I launch the Intent to bring up the UI for the desired call. This should do jabber:iq:gateway on the gateway and possibly other fallbacks, but for this prototype it just strips any non-digit and prepend +1 if not present, appending @gateway.tld for the associated gateway. We don't actually tell the OS UI when the call is active, because if we do it steals focus and puts the whole system in "in a call" mode, which causes Conversations to deactivate its UI. This is something to explore more if we want to use the OS in-call UI completely. We also haven't wired up the OS UI for DTMF since it never shows if the call is never active. We *do* tell the OS UI when the call is over, so it can clean up and close the other window. This means that after you hang up in Conversations, you are taken back to the OS UI showing "call ended" for a few moments. It also means that if an outgoing call fails you will see the OS UI for a few moments before being returned to Conversations to see the normal call failure screen. This is perhaps the biggest wart of the current prototype. As an alternative, we could just pretend the call immediately failed and have the OS UI close itself before the Conversations UI ever comes up. This basically causes a indeterminately-long "flash" of the OS UI, possibly long enough to see it say "call ended" before we get the Conversations UI which then works after that. I thought that was more confusing that what I'm doing now, but maybe others disagree. Finally, outbound calls placed from the Phone app do show in the Phone app call log. Other calls started from Conversations or inbound calls could show there with a full integration, but that's not part of this work.
Stephen Paul Weber created
6132024
Revert "Intercept DIAL and CALL to tel: and rewrite to cheogram"
This reverts commit 227dd8d2bcbb86599b22483bc56972aab66d7890.
Stephen Paul Weber created
92aed12
Need this now
Stephen Paul Weber created
480902d
Merge remote-tracking branch 'singpolyma/dtmf' into integration2
* singpolyma/dtmf: (145 commits) Detect a video call in a consistent way Use a boolean for this state Switch onClicks to use DataBinding Polyfill to allow use on Android 21 RtpSessionActivity: Fix NPE from using incorrect view id Changed dialpad icon to something more recognizable. Cleaned up DTMF code and click handling. WIP - dialpad and dtmf sending flush stanzas in batches code clean up in TagWriter Fix #4249. Clarify build instructions. allow verification of own omemo keys via uri bump dependencies version bump to 2.10.3-beta fix precondition for timeout handling bump agp version pulled translations from transifex add Samsung S4 to hardware aec blacklist add additional logging to image compression ...
Stephen Paul Weber created
47cc063
Detect a video call in a consistent way
Stephen Paul Weber created
5b94198
Use a boolean for this state
Stephen Paul Weber created
74bd6f0
Switch onClicks to use DataBinding
Stephen Paul Weber created
e65ee62
Polyfill to allow use on Android 21
Stephen Paul Weber created
9fa4b88
RtpSessionActivity: Fix NPE from using incorrect view id
Matthew Wild created
39fc0cc
Changed dialpad icon to something more recognizable.
Included SVG of icon in assets.
root21 created
c20a826
Cleaned up DTMF code and click handling.
Min API version change was required for user interface lambdas.
root21 created
358271b
WIP - dialpad and dtmf sending
Ketroc created
a0bc01c
Add handling of status code 333
This is used when something goes wrong with a MUC, e.g. a connection error made the MUC kick you out. In this case you generally want to try to rejoin.
Kim Alvefur created
6bd552f
flush stanzas in batches
Daniel Gultsch created
cdc239b
code clean up in TagWriter
Daniel Gultsch created
2553895
Fix #4249.
Millesimus created
364ef25
Clarify build instructions.
Lockywolf created
1246391
allow verification of own omemo keys via uri
Daniel Gultsch created
fecc344
bump dependencies
Daniel Gultsch created
cf9d6e5
version bump to 2.10.3-beta
Daniel Gultsch created
d7f38a3
fix precondition for timeout handling
Daniel Gultsch created