summaryrefslogtreecommitdiff
path: root/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'java/com')
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java8
-rw-r--r--java/com/android/dialer/app/calllog/IntentProvider.java4
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsActivity.java7
-rw-r--r--java/com/android/dialer/callintent/CallIntentBuilder.java129
-rw-r--r--java/com/android/dialer/interactions/PhoneNumberInteraction.java7
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java8
6 files changed, 93 insertions, 70 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 12c191e53..089ffd389 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -44,7 +44,6 @@ import android.support.v4.app.ActivityCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.telecom.PhoneAccount;
-import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -90,7 +89,6 @@ import com.android.dialer.app.list.SmartDialSearchFragment;
import com.android.dialer.app.settings.DialerSettingsActivity;
import com.android.dialer.app.widget.ActionBarController;
import com.android.dialer.app.widget.SearchEditTextLayout;
-import com.android.dialer.assisteddialing.ConcreteCreator;
import com.android.dialer.callcomposer.CallComposerActivity;
import com.android.dialer.calldetails.CallDetailsActivity;
import com.android.dialer.callintent.CallInitiationType;
@@ -1521,11 +1519,7 @@ public class DialtactsActivity extends TransactionSafeActivity
Intent intent =
new CallIntentBuilder(phoneNumber, callSpecificAppData)
.setIsVideoCall(isVideoCall)
- .setAllowAssistedDial(
- callSpecificAppData.getAllowAssistedDialing(),
- ConcreteCreator.createNewAssistedDialingMediator(
- getApplication().getSystemService(TelephonyManager.class),
- getApplicationContext()))
+ .setAllowAssistedDial(callSpecificAppData.getAllowAssistedDialing())
.build();
DialerUtils.startActivityWithErrorToast(this, intent);
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index 36e62c379..5180651da 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -26,7 +26,6 @@ import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import com.android.contacts.common.model.Contact;
import com.android.contacts.common.model.ContactLoader;
-import com.android.dialer.assisteddialing.ConcreteCreator;
import com.android.dialer.calldetails.CallDetailsActivity;
import com.android.dialer.calldetails.CallDetailsEntries;
import com.android.dialer.callintent.CallInitiationType;
@@ -67,8 +66,7 @@ public abstract class IntentProvider {
@Override
public Intent getIntent(Context context) {
return new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG)
- .setAllowAssistedDial(
- true, ConcreteCreator.createNewAssistedDialingMediator(telephonyManager, context))
+ .setAllowAssistedDial(true)
.build();
}
};
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 3a3c9118a..6ba31e624 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -30,10 +30,8 @@ import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
-import android.telephony.TelephonyManager;
import android.view.MenuItem;
import android.widget.Toast;
-import com.android.dialer.assisteddialing.ConcreteCreator;
import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
@@ -243,10 +241,7 @@ public class CallDetailsActivity extends AppCompatActivity
CallIntentBuilder callIntentBuilder =
new CallIntentBuilder(phoneNumber + postDialDigits, CallInitiationType.Type.CALL_DETAILS);
if (canSupportedAssistedDialing) {
- callIntentBuilder.setAllowAssistedDial(
- true,
- ConcreteCreator.createNewAssistedDialingMediator(
- getSystemService(TelephonyManager.class), this));
+ callIntentBuilder.setAllowAssistedDial(true);
}
DialerUtils.startActivityWithErrorToast(this, callIntentBuilder.build());
diff --git a/java/com/android/dialer/callintent/CallIntentBuilder.java b/java/com/android/dialer/callintent/CallIntentBuilder.java
index 25a5803dc..aabeabdc8 100644
--- a/java/com/android/dialer/callintent/CallIntentBuilder.java
+++ b/java/com/android/dialer/callintent/CallIntentBuilder.java
@@ -16,11 +16,11 @@
package com.android.dialer.callintent;
-import android.annotation.TargetApi;
import android.content.Intent;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.os.SystemClock;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -30,23 +30,22 @@ import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
import android.text.TextUtils;
-import com.android.dialer.assisteddialing.AssistedDialingMediator;
-import com.android.dialer.assisteddialing.TransformationInfo;
+import com.android.dialer.callintent.CallInitiationType.Type;
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;
-import java.util.Optional;
+import com.google.protobuf.InvalidProtocolBufferException;
/** Creates an intent to start a new outgoing call. */
-public class CallIntentBuilder {
- private final Uri uri;
+public class CallIntentBuilder implements Parcelable {
+ private Uri uri;
private final CallSpecificAppData callSpecificAppData;
@Nullable private PhoneAccountHandle phoneAccountHandle;
private boolean isVideoCall;
private String callSubject;
private boolean allowAssistedDial;
- private AssistedDialingMediator assistedDialingMediator;
+
+ private final Bundle outgoingCallExtras = new Bundle();
private static int lightbringerButtonAppearInExpandedCallLogItemCount = 0;
private static int lightbringerButtonAppearInCollapsedCallLogItemCount = 0;
@@ -96,6 +95,23 @@ public class CallIntentBuilder {
this(CallUtil.getCallUri(Assert.isNotNull(number)), callInitiationType);
}
+ public CallIntentBuilder(@NonNull Parcel parcel) {
+ ClassLoader classLoader = CallIntentBuilder.class.getClassLoader();
+ uri = parcel.readParcelable(classLoader);
+ CallSpecificAppData data;
+ try {
+ data = CallSpecificAppData.parseFrom(parcel.createByteArray());
+ } catch (InvalidProtocolBufferException e) {
+ data = createCallSpecificAppData(Type.UNKNOWN_INITIATION);
+ }
+ callSpecificAppData = data;
+ phoneAccountHandle = parcel.readParcelable(classLoader);
+ isVideoCall = parcel.readInt() != 0;
+ callSubject = parcel.readString();
+ allowAssistedDial = parcel.readInt() != 0;
+ outgoingCallExtras.putAll(parcel.readBundle(classLoader));
+ }
+
public static CallIntentBuilder forVoicemail(
@Nullable PhoneAccountHandle phoneAccountHandle, CallInitiationType.Type callInitiationType) {
return new CallIntentBuilder(
@@ -103,6 +119,14 @@ public class CallIntentBuilder {
.setPhoneAccountHandle(phoneAccountHandle);
}
+ public void setUri(@NonNull Uri uri) {
+ this.uri = Assert.isNotNull(uri);
+ }
+
+ public Uri getUri() {
+ return uri;
+ }
+
public CallSpecificAppData getCallSpecificAppData() {
return callSpecificAppData;
}
@@ -112,40 +136,54 @@ public class CallIntentBuilder {
return this;
}
+ @Nullable
+ public PhoneAccountHandle getPhoneAccountHandle() {
+ return phoneAccountHandle;
+ }
+
public CallIntentBuilder setIsVideoCall(boolean isVideoCall) {
this.isVideoCall = isVideoCall;
return this;
}
- public CallIntentBuilder setAllowAssistedDial(
- boolean allowAssistedDial, @NonNull AssistedDialingMediator assistedDialingMediator) {
- this.assistedDialingMediator = Assert.isNotNull(assistedDialingMediator);
+ public boolean isVideoCall() {
+ return isVideoCall;
+ }
+
+ public CallIntentBuilder setAllowAssistedDial(boolean allowAssistedDial) {
this.allowAssistedDial = allowAssistedDial;
return this;
}
+ public boolean isAssistedDialAllowed() {
+ return allowAssistedDial;
+ }
+
public CallIntentBuilder setCallSubject(String callSubject) {
this.callSubject = callSubject;
return this;
}
+ public String getCallSubject() {
+ return callSubject;
+ }
+
+ public Bundle getOutgoingCallExtras() {
+ return outgoingCallExtras;
+ }
+
public Intent build() {
Intent intent = new Intent(Intent.ACTION_CALL, uri);
- Bundle extras = new Bundle();
- if (allowAssistedDial
- && this.assistedDialingMediator != null
- && this.assistedDialingMediator.isPlatformEligible()) {
- intent = buildAssistedDialingParameters(intent, extras);
- }
intent.putExtra(
TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE,
isVideoCall ? VideoProfile.STATE_BIDIRECTIONAL : VideoProfile.STATE_AUDIO_ONLY);
- extras.putLong(Constants.EXTRA_CALL_CREATED_TIME_MILLIS, SystemClock.elapsedRealtime());
- CallIntentParser.putCallSpecificAppData(extras, callSpecificAppData);
+ outgoingCallExtras.putLong(
+ Constants.EXTRA_CALL_CREATED_TIME_MILLIS, SystemClock.elapsedRealtime());
+ CallIntentParser.putCallSpecificAppData(outgoingCallExtras, callSpecificAppData);
- intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+ intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, outgoingCallExtras);
if (phoneAccountHandle != null) {
intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
@@ -158,26 +196,6 @@ public class CallIntentBuilder {
return intent;
}
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(Build.VERSION_CODES.N)
- private Intent buildAssistedDialingParameters(Intent intent, Bundle extras) {
- extras.putBoolean(TelephonyManagerCompat.ALLOW_ASSISTED_DIAL, true);
- String phoneNumber =
- uri.getScheme().equals(PhoneAccount.SCHEME_TEL) ? uri.getSchemeSpecificPart() : "";
- Optional<TransformationInfo> transformedNumber =
- assistedDialingMediator.attemptAssistedDial(phoneNumber);
- if (transformedNumber.isPresent()) {
- Bundle assistedDialingExtras = transformedNumber.get().toBundle();
- extras.putBoolean(TelephonyManagerCompat.IS_ASSISTED_DIALED, true);
- extras.putBundle(TelephonyManagerCompat.ASSISTED_DIALING_EXTRAS, assistedDialingExtras);
- intent =
- new Intent(
- Intent.ACTION_CALL,
- CallUtil.getCallUri(Assert.isNotNull(transformedNumber.get().transformedNumber())));
- }
- return intent;
- }
-
private static @NonNull CallSpecificAppData createCallSpecificAppData(
CallInitiationType.Type callInitiationType) {
CallSpecificAppData callSpecificAppData =
@@ -218,4 +236,33 @@ public class CallIntentBuilder {
lightbringerButtonAppearInExpandedCallLogItemCount = 0;
lightbringerButtonAppearInSearchCount = 0;
}
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeParcelable(uri, flags);
+ dest.writeByteArray(callSpecificAppData.toByteArray());
+ dest.writeParcelable(phoneAccountHandle, flags);
+ dest.writeInt(isVideoCall ? 1 : 0);
+ dest.writeString(callSubject);
+ dest.writeInt(allowAssistedDial ? 1 : 0);
+ dest.writeBundle(outgoingCallExtras);
+ }
+
+ public static final Creator<CallIntentBuilder> CREATOR =
+ new Creator<CallIntentBuilder>() {
+ @Override
+ public CallIntentBuilder createFromParcel(Parcel source) {
+ return new CallIntentBuilder(source);
+ }
+
+ @Override
+ public CallIntentBuilder[] newArray(int size) {
+ return new CallIntentBuilder[0];
+ }
+ };
}
diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
index ac744cce7..255f6c380 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -41,7 +41,6 @@ import android.provider.ContactsContract.RawContacts;
import android.support.annotation.IntDef;
import android.support.annotation.VisibleForTesting;
import android.support.v4.app.ActivityCompat;
-import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -53,7 +52,6 @@ import com.android.contacts.common.Collapser;
import com.android.contacts.common.Collapser.Collapsible;
import com.android.contacts.common.MoreContactUtils;
import com.android.contacts.common.util.ContactDisplayUtils;
-import com.android.dialer.assisteddialing.ConcreteCreator;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.callintent.CallIntentParser;
@@ -187,10 +185,7 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
intent =
new CallIntentBuilder(phoneNumber, callSpecificAppData)
.setIsVideoCall(isVideoCall)
- .setAllowAssistedDial(
- callSpecificAppData.getAllowAssistedDialing(),
- ConcreteCreator.createNewAssistedDialingMediator(
- context.getSystemService(TelephonyManager.class), context))
+ .setAllowAssistedDial(callSpecificAppData.getAllowAssistedDialing())
.build();
break;
}
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index cd42a7476..c0a6700eb 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -32,7 +32,6 @@ import android.support.annotation.VisibleForTesting;
import android.support.v13.app.FragmentCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -44,7 +43,6 @@ import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
import com.android.dialer.animation.AnimUtils;
-import com.android.dialer.assisteddialing.ConcreteCreator;
import com.android.dialer.callcomposer.CallComposerActivity;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
@@ -488,11 +486,7 @@ public final class NewSearchFragment extends Fragment
Intent intent =
new CallIntentBuilder(phoneNumber, callSpecificAppData)
.setIsVideoCall(isVideoCall)
- .setAllowAssistedDial(
- allowAssistedDial,
- ConcreteCreator.createNewAssistedDialingMediator(
- getContext().getSystemService(TelephonyManager.class),
- getContext().getApplicationContext()))
+ .setAllowAssistedDial(allowAssistedDial)
.build();
DialerUtils.startActivityWithErrorToast(getActivity(), intent);
FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlaced();