Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Feature: send voice message as attachment #1762

Merged

Conversation

harish2704
Copy link
Contributor

@harish2704 harish2704 commented Nov 18, 2017

We know that Riot-Android do not have "push to talk" kind feature,
This PR provides a alternative way or work-around for this issue using a simple solution.
Ie, send a voice message attachment using system-sound-recorder application.

The work flow is as follows

  • User clicks on 'attachment button"
  • in addition to "send-fiels" & "take photo or video", one more additional choice called "send voice" is added
  • when user clicks on "send voice", system voice recorder application will get invoked and user can record voice using it.
  • Finally, resultant file is sent as file attachment.

When we implement built-in Push-to-talk button and proper voice encoding , we can replace this feature with new PTT button. Till that time I hope this will be helpful to lot of normal users

Signed-off-by: Harish.K [email protected]

…tent available in the android system.

* Refactor/cleanup


Signed-off-by: Harish.K <[email protected]>
Signed-off-by: Harish.K <[email protected]>
@harish2704
Copy link
Contributor Author

screenshot_20171118-195541

@@ -721,6 +725,8 @@ public void onItemClick(IconAndTextDialogFragment dialogFragment, int position)

if (selectedVal == R.string.option_send_files) {
VectorRoomActivity.this.launchFileSelectionIntent();
} else if (selectedVal == R.string.option_send_voice ) {
VectorRoomActivity.this.launchAudioRecorderIntent();
Copy link
Contributor

@ylecollen ylecollen Nov 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

audio permission request must be checked too

/**
* Launch audio recorder intent
*/
@SuppressLint("NewApi")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you add this "SuppressLint" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry it happened during copy-paste. Will remove

private void launchAudioRecorderIntent() {
enableActionBarHeader(HIDE_ACTION_BAR_HEADER);
Intent fileIntent = new Intent( MediaStore.Audio.Media.RECORD_SOUND_ACTION );
startActivityForResult(fileIntent, REQUEST_FILES_REQUEST_CODE);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RECORD_SOUND_ACTION seems optional (https://stackoverflow.com/questions/15546051/android-mediastore-audio-media-record-sound-action-no-activity-found-to-handle).
Notice, we might have the same issue for the other entry (camera...)

@bmarty bmarty added this to the Sprint 11 milestone May 31, 2018
@bmarty
Copy link
Member

bmarty commented May 31, 2018

Hi @harish2704,

Thanks for this PR. It will be merged soon :)
This feature will be added to the Lab feature for the moment.
Could you please sign-off it as per https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst#sign-off

Benoît

@harish2704
Copy link
Contributor Author

harish2704 commented May 31, 2018

Hi @bmarty
I just pushed a new commit which removes some unwanted comments ( as specified by @ylecollen )
I have added a Sign-off message in that commit
updated PR comment with sign-off message.
Hope it will resolve the problem

@harish2704 harish2704 force-pushed the feature-voice-attachment branch from b483a69 to 66c81cc Compare June 7, 2018 16:15
@bmarty bmarty changed the base branch from develop to feature/send_voice June 18, 2018 16:32
@bmarty bmarty merged commit 3fae196 into element-hq:feature/send_voice Jun 18, 2018
@BloodyIron
Copy link

I'm not seeing how to do this intuitively from the UX. And I also cannot figure out how to do this at all. How exactly was this implemented from a UX perspective? D:

@bmarty
Copy link
Member

bmarty commented Jul 5, 2018

Whatsapp has a good UX for this. But for now this is just a quick implementation to send audio message. In the future, voice message qhould be handled by the matrix protocol and implemented with a good UX on the Riot clients

@BloodyIron
Copy link

Okay, but I don't see how (as in, I literally don't see this) I send a voice recording to a channel. I believe the feature was added, but I have no idea how to use it... How does one use it? This is half asking how, half pointing out a UX problem.

@bmarty
Copy link
Member

bmarty commented Jul 6, 2018

you have to enable it in the Labs (it's disabled by default, like below):
screen shot 2018-07-06 at 14 57 39

Then click on the pin in a room:
screen shot 2018-07-06 at 14 59 19

@BloodyIron
Copy link

Hmmm only seem to be able to download with the desktop version, not just play in-line. Is that functionality coming? (play the recording I posted in a channel)

@irregularisnotrandom
Copy link

I am.gettting certificate error on android when i enable this feature in the labs. After i enable and reopen the app it tells.me there is an.issue with my LE cert. I wipe the data and readd my account no cert issue. I tried this 2 times already and both times i get this cert issue. Since last fresh start without this experimental.issue i.never had and cert issue

giomfo referenced this pull request in tchapgouv/tchap-android-legacy Aug 25, 2018
Update matrix-sdk.aar lib - build 1875 - Revision: ccf12449b8f09b06a7a8f501b9d7a382270b2305

Last rebase was performed June 1 2018. Here is the list of changes from vector-im/riot-android changes:

Changes in Riot 0.8.XX (2018-08-24)
===================================================

Features:
 - Manage server quota notices (#2440)

Improvements:
 - Do not ask permission to write external storage at startup (#2483)
 - Update settings icon and transparent logo for notifications and navigation drawer (#2492)
 - URL previews are no longer requested from the server when displaying URL previews is disabled (PR #2514)
 - Fix some plural and puzzle strings, and remove other unused ones (#2444)
 - Manage System Alerts in a dedicated section

Other changes:
 - Upgrade olm-sdk.aar from version 2.2.2 to version 2.3.0
 - move PieFractionView from the SDK to the client (#2525)

Bugfix:
 - Fix media sharing (#2530)
 - Fix notification sound issue in settings (#2524)
 - Disable app icon badge for "listen for event" notification (#2104)

Changes in Riot 0.8.13 (2018-08-09)
===================================================

Features:
 - Resurrect performance metrics (#2391)
 - Telemetry to report incidence of UISIs (#2330)
 - Add a previewer for previewing media before sending it into the room (#1742|#2445)
 - Implements ReplyTo feature (#2390)
 - Add auto completion for slash commands (#2384)
 - Support Room Versioning (#2441)

Improvements:
 - Update matrix-sdk.aar lib (v0.9.7).
 - Piwik: Update the way how stats are reported (#2402)
 - Improve BugReport screen: display a preview of the screenshot (#2318)
 - In the settings, move theme settings just below "language" (#2439)
 - Improve the display of the sources of the message in the dialog (#2348)
 - Improve the display of the buttons and the reason in the room preview (#2352)
 - In the flair section on settings, notify the user when he has no flair (#2430)
 - Improve GDPR consent webview management (#2491)
 - Support external keyboard to send messages for recent devices (#220, #1279)
 - When user ignores or un-ignores someone, notify that the app will restart (#2437)

Other changes:
 - Remove dependency to `android-gif-drawable` lib and use Glide to animate logo on Splashscreen (#2421)
 - Keep only Room.getState() method and remove Room.getLiveState() because they are similar (matrix-org/matrix-android-sdk#310)

Bugfix:
 - Fix issue on incoming call screen when "Do not disturb mode" is active (#2417)
 - Fix issue when selecting sound for notifications in the settings
 - Fix issue when changing device name in the settings (#2416)
 - Fix issue on verifying device, update the wording of the description message (#1067)
 - Messages with code blocks show other HTML as plain text (#2280)
 - Message with <p> was sometimes not properly formatted (#2275)
 - Fix notification issue when Riot is not started (#2451)
 - Fix Unable to add Matrix apps (#2466)
 - Riot auto joined a public room (#2472)
 - Remove last traces of Firebase analytics (#2481)
 - code blocks are escaped and therefore hard readable (#2484)
 - Restore the navigation of the back button in the public rooms preview header (#2473)
 - Fix issue on preference screen: device lists was not displayed (#2409)
 - Ensure notification has a title (#2242)

Changes in Riot 0.8.12 (2018-07-06)
===================================================

Bugfix:
 - Fix issue on vanished favorite and low priority room (#2413)

Changes in Riot 0.8.11 (2018-07-03)
===================================================

Features:
 - Re-request keys manually for encrypted events (#2319)
 - Add option to send voice message to a room, using a third application to record message.
   To enable in the Labs settings (PR #1762)

Improvements:
 - Update matrix-sdk.aar lib (v0.9.6).
 - New Floating Action Menu in Home screen (PR #2335)
 - Add spacing to device keys (#2314)
 - use apply() instead of commit() to save shared prefs (#2231)
 - Do not ring if "Do Not Disturb" is active (#1072)
 - Manage the "consent not given" error when declining a room invite

Other changes:
 - Remove "Matrix application" activation from the Lab section in the settings (#2341)

Bugfix:
 - Remove black borders on 18:9 phone (#2063)
 - Auto dismiss the join/reject room notification when user select an action (#2354)
 - Fix some crashes reported by the PlayStore (#2380, #2382, #2383, #2395)
 - Fix issues in UrlPreviews (#2312)

Translations:
 - Galician thanks to Miguel Branco

Build:
 - Add script to check code quality
 - Travis will now check if CHANGES.rst has been modified for each PR

------

Merge commit '94b7925a57b800db62b5ec87966d994ff53392b4' into develop

# Conflicts:
#	vector/src/main/java/im/vector/activity/VectorRoomActivity.java
#	vector/src/main/java/im/vector/adapters/VectorMediasViewerAdapter.java
#	vector/src/main/java/im/vector/db/VectorContentProvider.java
#	vector/src/main/java/im/vector/dialogs/ConsentNotGivenHelper.kt
#	vector/src/main/java/im/vector/fragments/VectorSettingsPreferencesFragment.kt
#	vector/src/main/res/values/strings.xml
#	vector/src/main/res/values/styles.xml
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants