diff options
author | erfanian <erfanian@google.com> | 2017-10-09 15:12:22 -0700 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2017-10-10 07:12:05 -0700 |
commit | 04ac93d3c9d2f3f4c157bfa1d23d225aa34db9df (patch) | |
tree | f6e7fc8b5c3c67eecc096996d10ccd8abe145812 /java/com/android/dialer/assisteddialing/ConcreteCreator.java | |
parent | 45e4573bb6ab234d57a921a73095fd18e453e261 (diff) |
Add assisted dialing to outbound calls that qualify.
* Add missing assisted dialing to calls from contacts in the call log.
* Add missing assisted dialing to calls from dialpad and normal search.
Bug: 63995025,63995261
Test: unit test
PiperOrigin-RevId: 171593967
Change-Id: I4e63ef1dcd7ee1b2b5cbb8ecb4d8da744d90bd66
Diffstat (limited to 'java/com/android/dialer/assisteddialing/ConcreteCreator.java')
-rw-r--r-- | java/com/android/dialer/assisteddialing/ConcreteCreator.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/java/com/android/dialer/assisteddialing/ConcreteCreator.java b/java/com/android/dialer/assisteddialing/ConcreteCreator.java index f51216a69..49d3b1f87 100644 --- a/java/com/android/dialer/assisteddialing/ConcreteCreator.java +++ b/java/com/android/dialer/assisteddialing/ConcreteCreator.java @@ -18,10 +18,12 @@ package com.android.dialer.assisteddialing; import android.annotation.TargetApi; import android.content.Context; +import android.os.Build; import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import android.telephony.TelephonyManager; import com.android.dialer.common.LogUtil; +import com.android.dialer.configprovider.ConfigProviderBindings; /** * A Creator for AssistedDialingMediators. @@ -32,6 +34,11 @@ import com.android.dialer.common.LogUtil; @TargetApi(VERSION_CODES.N) public final class ConcreteCreator { + // Floor set at N due to use of Optional. + protected static final int BUILD_CODE_FLOOR = Build.VERSION_CODES.N; + // Ceiling set at O because this feature will ship as part of the framework in P. + protected static final int BUILD_CODE_CEILING = Build.VERSION_CODES.O; + /** * Creates a new AssistedDialingMediator * @@ -42,6 +49,7 @@ public final class ConcreteCreator { */ public static AssistedDialingMediator createNewAssistedDialingMediator( @NonNull TelephonyManager telephonyManager, @NonNull Context context) { + if (telephonyManager == null) { LogUtil.i( "ConcreteCreator.createNewAssistedDialingMediator", "provided TelephonyManager was null"); @@ -51,8 +59,14 @@ public final class ConcreteCreator { LogUtil.i("ConcreteCreator.createNewAssistedDialingMediator", "provided context was null"); throw new NullPointerException("Provided context was null"); } + + if ((Build.VERSION.SDK_INT < BUILD_CODE_FLOOR || Build.VERSION.SDK_INT > BUILD_CODE_CEILING) + || !ConfigProviderBindings.get(context).getBoolean("assisted_dialing_enabled", false)) { + return new AssistedDialingMediatorStub(); + } + Constraints constraints = new Constraints(context); - return new AssistedDialingMediator( + return new AssistedDialingMediatorImpl( new LocationDetector(telephonyManager), new NumberTransformer(constraints)); } } |