diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 566368a6e..1df6d518d 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 000000000..a910e0798 --- /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(); + } +}