Loading android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +27 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,9 @@ class MceStateMachine extends StateMachine { static final String FOLDER_SENT = "sent"; private static final String INBOX_PATH = "telecom/msg/inbox"; // URI Scheme for messages with email contact private static final String SCHEME_MAILTO = "mailto"; // Connectivity States private int mPreviousState = BluetoothProfile.STATE_DISCONNECTED; private State mDisconnected; Loading Loading @@ -325,6 +328,18 @@ class MceStateMachine extends StateMachine { Log.d(TAG, "Sending to phone numbers " + destEntryPhone.getValueList()); } } } else if (SCHEME_MAILTO.equals(contact.getScheme())) { VCardEntry destEntry = new VCardEntry(); VCardProperty destEntryContact = new VCardProperty(); destEntryContact.setName(VCardConstants.PROPERTY_EMAIL); destEntryContact.addValues(contact.getSchemeSpecificPart()); destEntry.addProperty(destEntryContact); bmsg.addRecipient(destEntry); Log.d(TAG, "SPECIFIC: " + contact.getSchemeSpecificPart()); if (DBG) { Log.d(TAG, "Sending to emails " + destEntryContact.getValueList()); } } else { Log.w(TAG, "Scheme " + contact.getScheme() + " not supported."); return false; Loading Loading @@ -419,6 +434,10 @@ class MceStateMachine extends StateMachine { return PhoneAccount.SCHEME_TEL + ":" + number; } private String getContactURIFromEmail(String email) { return SCHEME_MAILTO + "://" + email; } Bmessage.Type getDefaultMessageType() { synchronized (mDefaultMessageType) { if (Utils.isPtsTestMode()) { Loading Loading @@ -949,6 +968,7 @@ class MceStateMachine extends StateMachine { Log.d(TAG, originator.toString()); } List<VCardEntry.PhoneData> phoneData = originator.getPhoneList(); List<VCardEntry.EmailData> emailData = originator.getEmailList(); if (phoneData != null && phoneData.size() > 0) { String phoneNumber = phoneData.get(0).getNumber(); if (DBG) { Loading @@ -956,6 +976,13 @@ class MceStateMachine extends StateMachine { } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_URI, getContactURIFromPhone(phoneNumber)); } else if (emailData != null && emailData.size() > 0) { String email = emailData.get(0).getAddress(); if (DBG) { Log.d(TAG, "Originator email: " + email); } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_URI, getContactURIFromEmail(email)); } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_NAME, originator.getDisplayName()); Loading android/app/tests/unit/src/com/android/bluetooth/mapclient/MapClientStateMachineTest.java +22 −2 Original line number Diff line number Diff line Loading @@ -398,10 +398,10 @@ public class MapClientStateMachineTest { } /** * Test sending a message * Test sending a message to a phone */ @Test public void testSendSMSMessage() { public void testSendSMSMessageToPhone() { setupSdpRecordReceipt(); Message msg = Message.obtain(mHandler, MceStateMachine.MSG_MAS_CONNECTED); mMceStateMachine.sendMessage(msg); Loading @@ -417,6 +417,26 @@ public class MapClientStateMachineTest { .makeRequest(any(RequestPushMessage.class)); } /** * Test sending a message to an email */ @Test public void testSendSMSMessageToEmail() { setupSdpRecordReceipt(); Message msg = Message.obtain(mHandler, MceStateMachine.MSG_MAS_CONNECTED); mMceStateMachine.sendMessage(msg); TestUtils.waitForLooperToFinishScheduledTask(mMceStateMachine.getHandler().getLooper()); Assert.assertEquals(BluetoothProfile.STATE_CONNECTED, mMceStateMachine.getState()); String testMessage = "Hello World!"; Uri[] contacts = new Uri[] {Uri.parse("mailto://sms-test@google.com")}; verify(mMockMasClient, times(0)).makeRequest(any(RequestPushMessage.class)); mMceStateMachine.sendMapMessage(contacts, testMessage, null, null); verify(mMockMasClient, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(1)) .makeRequest(any(RequestPushMessage.class)); } /** * Test message sent successfully */ Loading Loading
android/app/src/com/android/bluetooth/mapclient/MceStateMachine.java +27 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,9 @@ class MceStateMachine extends StateMachine { static final String FOLDER_SENT = "sent"; private static final String INBOX_PATH = "telecom/msg/inbox"; // URI Scheme for messages with email contact private static final String SCHEME_MAILTO = "mailto"; // Connectivity States private int mPreviousState = BluetoothProfile.STATE_DISCONNECTED; private State mDisconnected; Loading Loading @@ -325,6 +328,18 @@ class MceStateMachine extends StateMachine { Log.d(TAG, "Sending to phone numbers " + destEntryPhone.getValueList()); } } } else if (SCHEME_MAILTO.equals(contact.getScheme())) { VCardEntry destEntry = new VCardEntry(); VCardProperty destEntryContact = new VCardProperty(); destEntryContact.setName(VCardConstants.PROPERTY_EMAIL); destEntryContact.addValues(contact.getSchemeSpecificPart()); destEntry.addProperty(destEntryContact); bmsg.addRecipient(destEntry); Log.d(TAG, "SPECIFIC: " + contact.getSchemeSpecificPart()); if (DBG) { Log.d(TAG, "Sending to emails " + destEntryContact.getValueList()); } } else { Log.w(TAG, "Scheme " + contact.getScheme() + " not supported."); return false; Loading Loading @@ -419,6 +434,10 @@ class MceStateMachine extends StateMachine { return PhoneAccount.SCHEME_TEL + ":" + number; } private String getContactURIFromEmail(String email) { return SCHEME_MAILTO + "://" + email; } Bmessage.Type getDefaultMessageType() { synchronized (mDefaultMessageType) { if (Utils.isPtsTestMode()) { Loading Loading @@ -949,6 +968,7 @@ class MceStateMachine extends StateMachine { Log.d(TAG, originator.toString()); } List<VCardEntry.PhoneData> phoneData = originator.getPhoneList(); List<VCardEntry.EmailData> emailData = originator.getEmailList(); if (phoneData != null && phoneData.size() > 0) { String phoneNumber = phoneData.get(0).getNumber(); if (DBG) { Loading @@ -956,6 +976,13 @@ class MceStateMachine extends StateMachine { } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_URI, getContactURIFromPhone(phoneNumber)); } else if (emailData != null && emailData.size() > 0) { String email = emailData.get(0).getAddress(); if (DBG) { Log.d(TAG, "Originator email: " + email); } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_URI, getContactURIFromEmail(email)); } intent.putExtra(BluetoothMapClient.EXTRA_SENDER_CONTACT_NAME, originator.getDisplayName()); Loading
android/app/tests/unit/src/com/android/bluetooth/mapclient/MapClientStateMachineTest.java +22 −2 Original line number Diff line number Diff line Loading @@ -398,10 +398,10 @@ public class MapClientStateMachineTest { } /** * Test sending a message * Test sending a message to a phone */ @Test public void testSendSMSMessage() { public void testSendSMSMessageToPhone() { setupSdpRecordReceipt(); Message msg = Message.obtain(mHandler, MceStateMachine.MSG_MAS_CONNECTED); mMceStateMachine.sendMessage(msg); Loading @@ -417,6 +417,26 @@ public class MapClientStateMachineTest { .makeRequest(any(RequestPushMessage.class)); } /** * Test sending a message to an email */ @Test public void testSendSMSMessageToEmail() { setupSdpRecordReceipt(); Message msg = Message.obtain(mHandler, MceStateMachine.MSG_MAS_CONNECTED); mMceStateMachine.sendMessage(msg); TestUtils.waitForLooperToFinishScheduledTask(mMceStateMachine.getHandler().getLooper()); Assert.assertEquals(BluetoothProfile.STATE_CONNECTED, mMceStateMachine.getState()); String testMessage = "Hello World!"; Uri[] contacts = new Uri[] {Uri.parse("mailto://sms-test@google.com")}; verify(mMockMasClient, times(0)).makeRequest(any(RequestPushMessage.class)); mMceStateMachine.sendMapMessage(contacts, testMessage, null, null); verify(mMockMasClient, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(1)) .makeRequest(any(RequestPushMessage.class)); } /** * Test message sent successfully */ Loading