diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 566368a6e4..1df6d518d5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -111,13 +111,6 @@
-
-
-
-
-
diff --git a/src/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java b/src/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java
new file mode 100644
index 0000000000..a910e0798d
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java
@@ -0,0 +1,48 @@
+package org.thoughtcrime.securesms.webrtc;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+
+import org.thoughtcrime.securesms.WebRtcCallActivity;
+import org.thoughtcrime.securesms.service.WebRtcCallService;
+
+public class VoiceCallShare extends Activity {
+
+ private static final String TAG = VoiceCallShare.class.getSimpleName();
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ if (getIntent().getData() != null && "content".equals(getIntent().getData().getScheme())) {
+ Cursor cursor = null;
+
+ try {
+ cursor = getContentResolver().query(getIntent().getData(), null, null, null, null);
+
+ if (cursor != null && cursor.moveToNext()) {
+ String destination = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.RawContacts.Data.DATA1));
+
+ if (!TextUtils.isEmpty(destination)) {
+ Intent serviceIntent = new Intent(this, WebRtcCallService.class);
+ serviceIntent.setAction(WebRtcCallService.ACTION_OUTGOING_CALL);
+ serviceIntent.putExtra(WebRtcCallService.EXTRA_REMOTE_NUMBER, destination);
+ startService(serviceIntent);
+
+ Intent activityIntent = new Intent(this, WebRtcCallActivity.class);
+ activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(activityIntent);
+ }
+ }
+ } finally {
+ if (cursor != null) cursor.close();
+ }
+ }
+
+ finish();
+ }
+}