summaryrefslogtreecommitdiff
path: root/java/com/android/dialer
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer')
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsActivity.java59
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsAdapter.java12
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java93
-rw-r--r--java/com/android/dialer/calldetails/res/layout/contact_container.xml61
-rw-r--r--java/com/android/dialer/calldetails/res/values/dimens.xml12
-rw-r--r--java/com/android/dialer/calldetails/res/values/strings.xml6
-rw-r--r--java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java6
7 files changed, 213 insertions, 36 deletions
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index b51d833dc..c29f9e9ae 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -33,13 +33,20 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
+import android.view.View;
import android.widget.Toast;
+import com.android.dialer.DialerPhoneNumber;
+import com.android.dialer.assisteddialing.ui.AssistedDialingSettingActivity;
import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.common.concurrent.DialerExecutor.FailureListener;
+import com.android.dialer.common.concurrent.DialerExecutor.SuccessListener;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.duo.Duo;
@@ -51,10 +58,12 @@ import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.UiAction;
import com.android.dialer.performancereport.PerformanceReport;
+import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
import com.android.dialer.postcall.PostCall;
import com.android.dialer.precall.PreCall;
import com.android.dialer.protos.ProtoParsers;
import com.google.common.base.Preconditions;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.List;
@@ -70,8 +79,8 @@ public class CallDetailsActivity extends AppCompatActivity {
public static final String EXTRA_CAN_REPORT_CALLER_ID = "can_report_caller_id";
private static final String EXTRA_CAN_SUPPORT_ASSISTED_DIALING = "can_support_assisted_dialing";
- private final CallDetailsHeaderViewHolder.CallbackActionListener callbackActionListener =
- new CallbackActionListener(this);
+ private final CallDetailsHeaderViewHolder.CallDetailsHeaderListener callDetailsHeaderListener =
+ new CallDetailsHeaderListener(this);
private final CallDetailsFooterViewHolder.DeleteCallDetailsListener deleteCallDetailsListener =
new DeleteCallDetailsListener(this);
private final CallDetailsFooterViewHolder.ReportCallIdListener reportCallIdListener =
@@ -166,7 +175,7 @@ public class CallDetailsActivity extends AppCompatActivity {
this /* context */,
contact,
entries.getEntriesList(),
- callbackActionListener,
+ callDetailsHeaderListener,
reportCallIdListener,
deleteCallDetailsListener);
@@ -248,11 +257,11 @@ public class CallDetailsActivity extends AppCompatActivity {
}
}
- private static final class CallbackActionListener
- implements CallDetailsHeaderViewHolder.CallbackActionListener {
- private final WeakReference<Activity> activityWeakReference;
+ private static final class CallDetailsHeaderListener
+ implements CallDetailsHeaderViewHolder.CallDetailsHeaderListener {
+ private final WeakReference<CallDetailsActivity> activityWeakReference;
- CallbackActionListener(Activity activity) {
+ CallDetailsHeaderListener(CallDetailsActivity activity) {
this.activityWeakReference = new WeakReference<>(activity);
}
@@ -303,9 +312,43 @@ public class CallDetailsActivity extends AppCompatActivity {
PreCall.start(getActivity(), callIntentBuilder);
}
- private Activity getActivity() {
+ private CallDetailsActivity getActivity() {
return Preconditions.checkNotNull(activityWeakReference.get());
}
+
+ @Override
+ public void openAssistedDialingSettings(View unused) {
+ Intent intent = new Intent(getActivity(), AssistedDialingSettingActivity.class);
+ getActivity().startActivity(intent);
+ }
+
+ @Override
+ public void createAssistedDialerNumberParserTask(
+ AssistedDialingNumberParseWorker worker,
+ SuccessListener<Integer> successListener,
+ FailureListener failureListener) {
+ DialerExecutorComponent.get(getActivity().getApplicationContext())
+ .dialerExecutorFactory()
+ .createUiTaskBuilder(
+ getActivity().getFragmentManager(),
+ "CallDetailsActivity.createAssistedDialerNumberParserTask",
+ new AssistedDialingNumberParseWorker())
+ .onSuccess(successListener)
+ .onFailure(failureListener)
+ .build()
+ .executeParallel(getActivity().contact.getNumber());
+ }
+ }
+
+ static class AssistedDialingNumberParseWorker implements Worker<String, Integer> {
+
+ @Override
+ public Integer doInBackground(@NonNull String phoneNumber) {
+ DialerPhoneNumberUtil dialerPhoneNumberUtil =
+ new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance());
+ DialerPhoneNumber parsedNumber = dialerPhoneNumberUtil.parse(phoneNumber, null);
+ return parsedNumber.getDialerInternalPhoneNumber().getCountryCode();
+ }
}
private static final class DeleteCallDetailsListener
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index 07590597e..9095b86ea 100644
--- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java
+++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
@@ -24,7 +24,7 @@ import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.calldetails.CallDetailsFooterViewHolder.DeleteCallDetailsListener;
-import com.android.dialer.calldetails.CallDetailsHeaderViewHolder.CallbackActionListener;
+import com.android.dialer.calldetails.CallDetailsHeaderViewHolder.CallDetailsHeaderListener;
import com.android.dialer.calllogutils.CallTypeHelper;
import com.android.dialer.calllogutils.CallbackActionHelper;
import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction;
@@ -41,7 +41,7 @@ final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
private static final int FOOTER_VIEW_TYPE = 3;
private final DialerContact contact;
- private final CallbackActionListener callbackActionListener;
+ private final CallDetailsHeaderListener callDetailsHeaderListener;
private final CallDetailsFooterViewHolder.ReportCallIdListener reportCallIdListener;
private final DeleteCallDetailsListener deleteCallDetailsListener;
private final CallTypeHelper callTypeHelper;
@@ -51,12 +51,12 @@ final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
Context context,
@NonNull DialerContact contact,
@NonNull List<CallDetailsEntry> callDetailsEntries,
- CallbackActionListener callbackActionListener,
+ CallDetailsHeaderListener callDetailsHeaderListener,
CallDetailsFooterViewHolder.ReportCallIdListener reportCallIdListener,
DeleteCallDetailsListener deleteCallDetailsListener) {
this.contact = Assert.isNotNull(contact);
this.callDetailsEntries = callDetailsEntries;
- this.callbackActionListener = callbackActionListener;
+ this.callDetailsHeaderListener = callDetailsHeaderListener;
this.reportCallIdListener = reportCallIdListener;
this.deleteCallDetailsListener = deleteCallDetailsListener;
callTypeHelper = new CallTypeHelper(context.getResources(), DuoComponent.get(context).getDuo());
@@ -68,7 +68,7 @@ final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
switch (viewType) {
case HEADER_VIEW_TYPE:
return new CallDetailsHeaderViewHolder(
- inflater.inflate(R.layout.contact_container, parent, false), callbackActionListener);
+ inflater.inflate(R.layout.contact_container, parent, false), callDetailsHeaderListener);
case CALL_ENTRY_VIEW_TYPE:
return new CallDetailsEntryViewHolder(
inflater.inflate(R.layout.call_details_entry, parent, false));
@@ -87,6 +87,8 @@ final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == 0) { // Header
((CallDetailsHeaderViewHolder) holder).updateContactInfo(contact, getCallbackAction());
+ ((CallDetailsHeaderViewHolder) holder)
+ .updateAssistedDialingInfo(callDetailsEntries.get(position));
} else if (position == getItemCount() - 1) {
((CallDetailsFooterViewHolder) holder).setPhoneNumber(contact.getNumber());
} else {
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 1e08963ed..604a5e8dc 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -25,9 +25,16 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
+import android.widget.RelativeLayout;
import android.widget.TextView;
+import com.android.dialer.calldetails.CallDetailsActivity.AssistedDialingNumberParseWorker;
+import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.FailureListener;
+import com.android.dialer.common.concurrent.DialerExecutor.SuccessListener;
+import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.contactphoto.ContactPhotoManager;
import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.logging.InteractionEvent;
@@ -35,20 +42,22 @@ import com.android.dialer.logging.Logger;
/** ViewHolder for Header/Contact in {@link CallDetailsActivity}. */
public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
- implements OnClickListener {
+ implements OnClickListener, FailureListener {
- private final CallbackActionListener callbackActionListener;
+ private final CallDetailsHeaderListener callDetailsHeaderListener;
private final ImageView callbackButton;
private final TextView nameView;
private final TextView numberView;
private final TextView networkView;
private final QuickContactBadge contactPhoto;
private final Context context;
+ private final TextView assistedDialingInternationalDirectDialCodeAndCountryCodeText;
+ private final RelativeLayout assistedDialingContainer;
private DialerContact contact;
private @CallbackAction int callbackAction;
- CallDetailsHeaderViewHolder(View container, CallbackActionListener callbackActionListener) {
+ CallDetailsHeaderViewHolder(View container, CallDetailsHeaderListener callDetailsHeaderListener) {
super(container);
context = container.getContext();
callbackButton = container.findViewById(R.id.call_back_button);
@@ -56,14 +65,71 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
numberView = container.findViewById(R.id.phone_number);
networkView = container.findViewById(R.id.network);
contactPhoto = container.findViewById(R.id.quick_contact_photo);
+ assistedDialingInternationalDirectDialCodeAndCountryCodeText =
+ container.findViewById(R.id.assisted_dialing_text);
+ assistedDialingContainer = container.findViewById(R.id.assisted_dialing_container);
+
+ assistedDialingContainer.setOnClickListener(
+ callDetailsHeaderListener::openAssistedDialingSettings);
callbackButton.setOnClickListener(this);
- this.callbackActionListener = callbackActionListener;
+ this.callDetailsHeaderListener = callDetailsHeaderListener;
Logger.get(context)
.logQuickContactOnTouch(
contactPhoto, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_DETAILS, true);
}
+ private boolean hasAssistedDialingFeature(Integer features) {
+ return (features & TelephonyManagerCompat.FEATURES_ASSISTED_DIALING)
+ == TelephonyManagerCompat.FEATURES_ASSISTED_DIALING;
+ }
+
+ void updateAssistedDialingInfo(CallDetailsEntry callDetailsEntry) {
+
+ if (callDetailsEntry != null && hasAssistedDialingFeature(callDetailsEntry.getFeatures())) {
+ showAssistedDialingContainer(true);
+ callDetailsHeaderListener.createAssistedDialerNumberParserTask(
+ new CallDetailsActivity.AssistedDialingNumberParseWorker(),
+ this::updateAssistedDialingText,
+ this::onFailure);
+
+ } else {
+ showAssistedDialingContainer(false);
+ }
+ }
+
+ private void showAssistedDialingContainer(boolean shouldShowContainer) {
+ if (shouldShowContainer) {
+ assistedDialingContainer.setVisibility(View.VISIBLE);
+ } else {
+ LogUtil.i(
+ "CallDetailsHeaderViewHolder.updateAssistedDialingInfo",
+ "hiding assisted dialing ui elements");
+ assistedDialingContainer.setVisibility(View.GONE);
+ }
+ }
+
+ private void updateAssistedDialingText(Integer countryCode) {
+
+ // Try and handle any poorly formed inputs.
+ if (countryCode <= 0) {
+ onFailure(new IllegalStateException());
+ return;
+ }
+
+ LogUtil.i(
+ "CallDetailsHeaderViewHolder.updateAssistedDialingText", "Updating Assisted Dialing Text");
+ assistedDialingInternationalDirectDialCodeAndCountryCodeText.setText(
+ context.getString(
+ R.string.assisted_dialing_country_code_entry, String.valueOf(countryCode)));
+ }
+
+ @Override
+ public void onFailure(Throwable unused) {
+ assistedDialingInternationalDirectDialCodeAndCountryCodeText.setText(
+ R.string.assisted_dialing_country_code_entry_failure);
+ }
+
/** Populates the contact info fields based on the current contact information. */
void updateContactInfo(DialerContact contact, @CallbackAction int callbackAction) {
this.contact = contact;
@@ -128,13 +194,14 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
if (view == callbackButton) {
switch (callbackAction) {
case CallbackAction.IMS_VIDEO:
- callbackActionListener.placeImsVideoCall(contact.getNumber());
+ callDetailsHeaderListener.placeImsVideoCall(contact.getNumber());
break;
case CallbackAction.DUO:
- callbackActionListener.placeDuoVideoCall(contact.getNumber());
+ callDetailsHeaderListener.placeDuoVideoCall(contact.getNumber());
break;
case CallbackAction.VOICE:
- callbackActionListener.placeVoiceCall(contact.getNumber(), contact.getPostDialDigits());
+ callDetailsHeaderListener.placeVoiceCall(
+ contact.getNumber(), contact.getPostDialDigits());
break;
case CallbackAction.NONE:
default:
@@ -145,8 +212,8 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
}
}
- /** Listener for making a callback */
- interface CallbackActionListener {
+ /** Listener for the call details header */
+ interface CallDetailsHeaderListener {
/** Places an IMS video call. */
void placeImsVideoCall(String phoneNumber);
@@ -156,5 +223,13 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
/** Place a traditional voice call. */
void placeVoiceCall(String phoneNumber, String postDialDigits);
+
+ /** Access the Assisted Dialing settings * */
+ void openAssistedDialingSettings(View view);
+
+ void createAssistedDialerNumberParserTask(
+ AssistedDialingNumberParseWorker worker,
+ SuccessListener<Integer> onSuccess,
+ FailureListener onFailure);
}
}
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index b01a6cc13..5f531ab43 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -19,49 +19,54 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/call_details_top_margin"
- android:gravity="center_vertical"
android:paddingTop="@dimen/contact_container_padding_top_start"
- android:paddingStart="@dimen/contact_container_padding_top_start"
android:paddingBottom="@dimen/contact_container_padding_bottom_end"
- android:paddingEnd="@dimen/contact_container_padding_bottom_end">
+ android:paddingStart="@dimen/contact_container_padding_top_start"
+ android:paddingEnd="@dimen/contact_container_padding_bottom_end"
+ android:gravity="center_vertical"
+ android:orientation="vertical">
<QuickContactBadge
android:id="@+id/quick_contact_photo"
android:layout_width="@dimen/call_details_contact_photo_size"
android:layout_height="@dimen/call_details_contact_photo_size"
- android:layout_centerVertical="true"
android:padding="@dimen/call_details_contact_photo_padding"
android:focusable="true"/>
<LinearLayout
- android:orientation="vertical"
+ android:id="@+id/contact_information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/quick_contact_photo"
android:layout_toStartOf="@+id/call_back_button"
- android:layout_centerVertical="true">
+ android:gravity="center_vertical"
+ android:minHeight="@dimen/call_details_contact_photo_size"
+ android:orientation="vertical">
<TextView
android:id="@+id/contact_name"
+ style="@style/PrimaryText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/photo_text_margin"
- style="@style/PrimaryText"/>
+ android:layout_marginStart="@dimen/photo_text_margin"/>
<TextView
android:id="@+id/phone_number"
+ style="@style/SecondaryText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/photo_text_margin"
- style="@style/SecondaryText"/>
+ android:layout_marginStart="@dimen/photo_text_margin"/>
<TextView
android:id="@+id/network"
+ style="@style/SecondaryText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/photo_text_margin"
- android:visibility="gone"
- style="@style/SecondaryText"/>
+ android:visibility="gone"/>
+
+
</LinearLayout>
<ImageView
@@ -69,10 +74,40 @@
android:layout_width="@dimen/call_back_button_size"
android:layout_height="@dimen/call_back_button_size"
android:layout_alignParentEnd="true"
- android:layout_centerVertical="true"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/call"
android:scaleType="center"
android:src="@drawable/quantum_ic_call_white_24"
android:tint="@color/secondary_text_color"/>
+
+
+ <RelativeLayout
+ android:id="@+id/assisted_dialing_container"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/ad_container_height"
+ android:layout_below="@+id/contact_information"
+ android:background="?android:attr/selectableItemBackground"
+ android:gravity="center_vertical">
+
+ <ImageView
+ android:id="@+id/assisted_dialing_globe"
+ android:layout_width="@dimen/ad_icon_size"
+ android:layout_height="@dimen/ad_icon_size"
+ android:layout_marginTop="@dimen/ad_icon_margin_top_offset"
+ android:layout_marginStart="@dimen/ad_icon_margin_start_offset"
+ android:scaleType="fitCenter"
+ android:src="@drawable/quantum_ic_language_vd_theme_24"
+ android:tint="@color/secondary_text_color"/>
+
+ <TextView
+ android:id="@+id/assisted_dialing_text"
+ style="@style/SecondaryText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/ad_text_margin_start"
+ android:layout_marginEnd="@dimen/ad_end_margin"
+ android:layout_toRightOf="@id/assisted_dialing_globe"/>
+
+ </RelativeLayout>
+
</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml
index 694c8f47c..8c84b1b9b 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -18,7 +18,7 @@
<dimen name="call_details_top_margin">6dp</dimen>
<!-- contact container -->
- <dimen name="contact_container_padding_bottom_end">16dp</dimen>
+ <dimen name="contact_container_padding_bottom_end">8dp</dimen>
<dimen name="contact_container_padding_top_start">12dp</dimen>
<dimen name="call_details_contact_photo_size">48dp</dimen>
<dimen name="call_details_contact_photo_padding">4dp</dimen>
@@ -34,4 +34,14 @@
<dimen name="ec_container_height">48dp</dimen>
<dimen name="ec_photo_size">40dp</dimen>
<dimen name="ec_divider_top_bottom_margin">8dp</dimen>
+
+ <!-- Assisted Dialing -->
+ <dimen name="ad_container_height">48dp</dimen>
+ <dimen name="ad_icon_size">18dp</dimen>
+ <dimen name="ad_end_margin">16dp</dimen>
+ <dimen name="ad_text_margin_start">8dp</dimen>
+ <!-- Used to help smooth the text alignment to the center of the icon -->
+ <dimen name="ad_icon_margin_top_offset">2dp</dimen>
+ <dimen name="ad_icon_margin_start_offset">60dp</dimen>
+
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/calldetails/res/values/strings.xml b/java/com/android/dialer/calldetails/res/values/strings.xml
index 74ac71c32..f81696034 100644
--- a/java/com/android/dialer/calldetails/res/values/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values/strings.xml
@@ -49,4 +49,10 @@
<!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
<string name="report_caller_id_toast">Number reported</string>
+
+ <!-- Assisted dialing section header. [CHAR LIMIT=NONE] -->
+ <string name="assisted_dialing_country_code_entry">Assisted dialing: Used country code +<xliff:g example="1" id="ad_country_code">%1$s</xliff:g></string>
+
+ <!-- A fallback string for the assisted dialing header incase parsing failes.. [CHAR LIMIT=NONE] -->
+ <string name="assisted_dialing_country_code_entry_failure">Assisted dialing was used</string>
</resources>
diff --git a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
index cadce4d48..6bed818da 100644
--- a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
+++ b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java
@@ -77,6 +77,12 @@ public class TelephonyManagerCompat {
BuildCompat.isAtLeastOMR1() ? "android.telephony.extra.IS_REFRESH" : "is_refresh";
/**
+ * Indicates the call underwent Assisted Dialing; typically set as a feature available from the
+ * CallLog.
+ */
+ public static final Integer FEATURES_ASSISTED_DIALING = 0x10;
+
+ /**
* Returns the number of phones available. Returns 1 for Single standby mode (Single SIM
* functionality) Returns 2 for Dual standby mode.(Dual SIM functionality)
*