summaryrefslogtreecommitdiff
path: root/java/com/android
diff options
context:
space:
mode:
authorerfanian <erfanian@google.com>2017-08-14 14:58:46 -0700
committerEric Erfanian <erfanian@google.com>2017-08-15 08:25:36 -0700
commit393c0df6a01bf6890a944284e6d62a482b5d62ae (patch)
tree4d371d11637a7362a2fc1983ef4ea28c2e605a30 /java/com/android
parent572f3f264ecc6a0892fa346bd0924526cb326d77 (diff)
Register call initiated from a known contact in Dialer.
This additional metadata will be used by the telephony system to determine if an outgoing call is eligible for assisted dialing. Bug: 63995025 Test: some new unit tests PiperOrigin-RevId: 165233878 Change-Id: Idee6491e3396b0798ae6c72da53d51367f9fd7ee
Diffstat (limited to 'java/com/android')
-rw-r--r--java/com/android/contacts/common/list/ContactTileView.java1
-rw-r--r--java/com/android/contacts/common/list/PhoneNumberPickerFragment.java1
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java8
-rw-r--r--java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java11
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoriteTileView.java1
-rw-r--r--java/com/android/dialer/callintent/CallIntentBuilder.java12
-rw-r--r--java/com/android/dialer/callintent/call_specific_app_data.proto5
-rw-r--r--java/com/android/dialer/interactions/PhoneNumberInteraction.java1
-rw-r--r--java/com/android/dialer/shortcuts/CallContactActivity.java1
9 files changed, 40 insertions, 1 deletions
diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java
index 463564145..cfd52f385 100644
--- a/java/com/android/contacts/common/list/ContactTileView.java
+++ b/java/com/android/contacts/common/list/ContactTileView.java
@@ -65,6 +65,7 @@ public abstract class ContactTileView extends FrameLayout {
CallSpecificAppData callSpecificAppData =
CallSpecificAppData.newBuilder()
.setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+ .setAllowAssistedDialing(true)
.build();
mListener.onContactSelected(
getLookupUri(),
diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 2ab121756..d704e5492 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -235,6 +235,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
cacheContactInfo(position);
CallSpecificAppData callSpecificAppData =
CallSpecificAppData.newBuilder()
+ .setAllowAssistedDialing(true)
.setCallInitiationType(getCallInitiationType(true /* isRemoteDirectory */))
.setPositionOfSelectedSearchResult(position)
.setCharactersInSearchString(getQueryString() == null ? 0 : getQueryString().length())
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index a8b75bba7..d7edc6838 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -43,6 +43,7 @@ import android.support.v4.app.ActivityCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -96,6 +97,7 @@ import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.database.Database;
@@ -1449,6 +1451,12 @@ public class DialtactsActivity extends TransactionSafeActivity
Intent intent =
new CallIntentBuilder(phoneNumber, callSpecificAppData).setIsVideoCall(isVideoCall).build();
+ if (callSpecificAppData.getAllowAssistedDialing()) {
+ Bundle extras = new Bundle();
+ extras.putBoolean(TelephonyManagerCompat.ALLOW_ASSISTED_DIAL, true);
+ intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+ }
+
DialerUtils.startActivityWithErrorToast(this, intent);
mClearSearchOnPause = true;
}
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 745f8b665..55490393e 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -23,6 +23,7 @@ import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Bundle;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -68,6 +69,7 @@ import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.contactphoto.ContactPhotoManager;
@@ -886,6 +888,15 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
return;
}
+ if (info != null && info.lookupKey != null) {
+ Bundle extras = new Bundle();
+ if (intent.hasExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS)) {
+ extras = intent.getParcelableExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS);
+ }
+ extras.putBoolean(TelephonyManagerCompat.ALLOW_ASSISTED_DIAL, true);
+ intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+ }
+
// We check to see if we are starting a Lightbringer intent. The reason is Lightbringer
// intents need to be started using startActivityForResult instead of the usual startActivity
String packageName = intent.getPackage();
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
index 88a6dff4d..e0961be4b 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -129,6 +129,7 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
CallSpecificAppData.Builder callSpecificAppData =
CallSpecificAppData.newBuilder()
+ .setAllowAssistedDialing(true)
.setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
.setSpeedDialContactPosition(position);
if (isStarred) {
diff --git a/java/com/android/dialer/callintent/CallIntentBuilder.java b/java/com/android/dialer/callintent/CallIntentBuilder.java
index 36ea907ff..87de0f0ec 100644
--- a/java/com/android/dialer/callintent/CallIntentBuilder.java
+++ b/java/com/android/dialer/callintent/CallIntentBuilder.java
@@ -28,6 +28,7 @@ import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
import android.text.TextUtils;
import com.android.dialer.common.Assert;
+import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.performancereport.PerformanceReport;
import com.android.dialer.util.CallUtil;
@@ -38,6 +39,7 @@ public class CallIntentBuilder {
@Nullable private PhoneAccountHandle phoneAccountHandle;
private boolean isVideoCall;
private String callSubject;
+ private boolean allowAssistedDial;
private static int lightbringerButtonAppearInExpandedCallLogItemCount = 0;
private static int lightbringerButtonAppearInCollapsedCallLogItemCount = 0;
@@ -100,6 +102,11 @@ public class CallIntentBuilder {
return this;
}
+ public CallIntentBuilder setAllowAssistedDial(boolean allowAssistedDial) {
+ this.allowAssistedDial = allowAssistedDial;
+ return this;
+ }
+
public CallIntentBuilder setCallSubject(String callSubject) {
this.callSubject = callSubject;
return this;
@@ -114,6 +121,11 @@ public class CallIntentBuilder {
Bundle extras = new Bundle();
extras.putLong(Constants.EXTRA_CALL_CREATED_TIME_MILLIS, SystemClock.elapsedRealtime());
CallIntentParser.putCallSpecificAppData(extras, callSpecificAppData);
+
+ if (allowAssistedDial) {
+ extras.putBoolean(TelephonyManagerCompat.ALLOW_ASSISTED_DIAL, true);
+ }
+
intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
if (phoneAccountHandle != null) {
diff --git a/java/com/android/dialer/callintent/call_specific_app_data.proto b/java/com/android/dialer/callintent/call_specific_app_data.proto
index 82547fa03..065a7aba7 100644
--- a/java/com/android/dialer/callintent/call_specific_app_data.proto
+++ b/java/com/android/dialer/callintent/call_specific_app_data.proto
@@ -14,7 +14,7 @@ import "java/com/android/dialer/logging/ui_action.proto";
// Miscellaneous data that's included in a new outgoing call initiated by
// Dialer. The system will pass this data to the InCallUi which can use it
// for logging or for something else.
-// Next tag: 14
+// Next tag: 15
message CallSpecificAppData {
optional CallInitiationType.Type call_initiation_type = 1;
@@ -41,4 +41,7 @@ message CallSpecificAppData {
optional int32 lightbringer_button_appear_in_collapsed_call_log_item_count =
12;
optional int32 lightbringer_button_appear_in_search_count = 13;
+
+ // Indicates that the call is open to modification from assisted dialing.
+ optional bool allow_assisted_dialing = 14;
}
diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
index 39781cf37..c42be42ec 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -183,6 +183,7 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
intent =
new CallIntentBuilder(phoneNumber, callSpecificAppData)
.setIsVideoCall(isVideoCall)
+ .setAllowAssistedDial(callSpecificAppData.getAllowAssistedDialing())
.build();
break;
}
diff --git a/java/com/android/dialer/shortcuts/CallContactActivity.java b/java/com/android/dialer/shortcuts/CallContactActivity.java
index b80797984..87f6fcedc 100644
--- a/java/com/android/dialer/shortcuts/CallContactActivity.java
+++ b/java/com/android/dialer/shortcuts/CallContactActivity.java
@@ -70,6 +70,7 @@ public class CallContactActivity extends TransactionSafeActivity
private void makeCall() {
CallSpecificAppData callSpecificAppData =
CallSpecificAppData.newBuilder()
+ .setAllowAssistedDialing(true)
.setCallInitiationType(CallInitiationType.Type.LAUNCHER_SHORTCUT)
.build();
PhoneNumberInteraction.startInteractionForPhoneCall(