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/assisteddialing/AssistedDialingMediator.java12
-rw-r--r--java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java8
-rw-r--r--java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java6
-rw-r--r--java/com/android/dialer/assisteddialing/ConcreteCreator.java14
-rw-r--r--java/com/android/dialer/assisteddialing/Constraints.java8
-rw-r--r--java/com/android/dialer/assisteddialing/CountryCodeProvider.java4
-rw-r--r--java/com/android/dialer/assisteddialing/LocationDetector.java12
-rw-r--r--java/com/android/dialer/assisteddialing/NumberTransformer.java23
-rw-r--r--java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java4
-rw-r--r--java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java22
-rw-r--r--java/com/android/dialer/theme/common/res/values/text_styles.xml11
-rw-r--r--java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java22
12 files changed, 61 insertions, 85 deletions
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
index 756fd6125..6715e2b21 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
@@ -16,8 +16,6 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
import java.util.Optional;
@@ -25,14 +23,10 @@ import java.util.Optional;
public interface AssistedDialingMediator {
/** Returns {@code true} if the current client platform supports Assisted Dialing. */
- public boolean isPlatformEligible();
+ boolean isPlatformEligible();
/** Returns the country code in which the library thinks the user typically resides. */
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
- public Optional<String> userHomeCountryCode();
+ Optional<String> userHomeCountryCode();
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
- public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform);
+ Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform);
}
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
index 7214437ab..7fdb8dafc 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
@@ -16,10 +16,7 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
import com.android.dialer.common.LogUtil;
import java.util.Optional;
@@ -30,7 +27,6 @@ import java.util.Optional;
* call is eligible for assisted dialing, and performing the transformation of numbers eligible for
* assisted dialing.
*/
-@RequiresApi(VERSION_CODES.N)
final class AssistedDialingMediatorImpl implements AssistedDialingMediator {
private final LocationDetector locationDetector;
@@ -58,8 +54,6 @@ final class AssistedDialingMediatorImpl implements AssistedDialingMediator {
/** Returns the country code in which the library thinks the user typically resides. */
@Override
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
public Optional<String> userHomeCountryCode() {
return locationDetector.getUpperCaseUserHomeCountry();
}
@@ -69,8 +63,6 @@ final class AssistedDialingMediatorImpl implements AssistedDialingMediator {
* transformed number should be capable of dialing out of the User's current country and
* successfully connecting with a contact in the User's home country.
*/
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
@Override
public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform) {
Optional<String> userHomeCountryCode = locationDetector.getUpperCaseUserHomeCountry();
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
index 9a40e0576..cb3ca79f9 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
@@ -16,8 +16,6 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
import java.util.Optional;
@@ -26,16 +24,12 @@ public final class AssistedDialingMediatorStub implements AssistedDialingMediato
/** Always returns an empty Optional. */
@Override
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform) {
return Optional.empty();
}
/** Always returns an empty Optional. */
@Override
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
public Optional<String> userHomeCountryCode() {
return Optional.empty();
}
diff --git a/java/com/android/dialer/assisteddialing/ConcreteCreator.java b/java/com/android/dialer/assisteddialing/ConcreteCreator.java
index 050774340..b4f926dd3 100644
--- a/java/com/android/dialer/assisteddialing/ConcreteCreator.java
+++ b/java/com/android/dialer/assisteddialing/ConcreteCreator.java
@@ -16,13 +16,10 @@
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.preference.PreferenceManager;
import android.support.annotation.NonNull;
-import android.support.annotation.VisibleForTesting;
import android.support.v4.os.UserManagerCompat;
import android.telephony.TelephonyManager;
import com.android.dialer.common.LogUtil;
@@ -36,13 +33,11 @@ import com.android.dialer.strictmode.StrictModeUtils;
* <p>This helps keep the dependencies required by AssistedDialingMediator for assisted dialing
* explicit.
*/
-@TargetApi(VERSION_CODES.N)
public final class ConcreteCreator {
- // Floor set at N due to use of Optional.
- @VisibleForTesting public static final int BUILD_CODE_FLOOR = Build.VERSION_CODES.N;
- // Ceiling set at P because this feature will ship as part of the framework in Q.
- @VisibleForTesting public static final int BUILD_CODE_CEILING = 28;
+ // Ceiling set at P (version code 28) because this feature will ship as part of the framework in
+ // Q.
+ public static final int BUILD_CODE_CEILING = 28;
/**
* Creates a new AssistedDialingMediator
@@ -105,8 +100,7 @@ public final class ConcreteCreator {
throw new NullPointerException("Provided configProvider was null");
}
- return (Build.VERSION.SDK_INT >= BUILD_CODE_FLOOR
- && Build.VERSION.SDK_INT <= BUILD_CODE_CEILING)
+ return Build.VERSION.SDK_INT <= BUILD_CODE_CEILING
&& configProvider.getBoolean("assisted_dialing_enabled", false);
}
diff --git a/java/com/android/dialer/assisteddialing/Constraints.java b/java/com/android/dialer/assisteddialing/Constraints.java
index cae3734be..41a3e92b2 100644
--- a/java/com/android/dialer/assisteddialing/Constraints.java
+++ b/java/com/android/dialer/assisteddialing/Constraints.java
@@ -16,9 +16,7 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
import android.content.Context;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
@@ -35,8 +33,6 @@ import java.util.Locale;
import java.util.Optional;
/** Ensures that a number is eligible for Assisted Dialing */
-@TargetApi(VERSION_CODES.N)
-@SuppressWarnings("AndroidApiChecker") // Use of optional
final class Constraints {
private final PhoneNumberUtil phoneNumberUtil;
private final Context context;
@@ -46,7 +42,7 @@ final class Constraints {
* Create a new instance of Constraints.
*
* @param context The context used to determine whether or not a number is an emergency number.
- * @param configProviderCountryCodes A csv of supported country codes, e.g. "US,CA"
+ * @param countryCodeProvider A csv of supported country codes, e.g. "US,CA"
*/
public Constraints(@NonNull Context context, @NonNull CountryCodeProvider countryCodeProvider) {
if (context == null) {
@@ -73,7 +69,7 @@ final class Constraints {
* @return A boolean indicating whether or not the provided values are eligible for assisted
* dialing.
*/
- public boolean meetsPreconditions(
+ boolean meetsPreconditions(
@NonNull String numberToCheck,
@NonNull String userHomeCountryCode,
@NonNull String userRoamingCountryCode) {
diff --git a/java/com/android/dialer/assisteddialing/CountryCodeProvider.java b/java/com/android/dialer/assisteddialing/CountryCodeProvider.java
index 118696e9b..04b229150 100644
--- a/java/com/android/dialer/assisteddialing/CountryCodeProvider.java
+++ b/java/com/android/dialer/assisteddialing/CountryCodeProvider.java
@@ -16,8 +16,6 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.ArraySet;
@@ -32,8 +30,6 @@ import java.util.StringTokenizer;
import java.util.stream.Collectors;
/** A class to provide the appropriate country codes related to assisted dialing. */
-@TargetApi(VERSION_CODES.N)
-@SuppressWarnings("AndroidApiChecker") // Java 8 APIs
public final class CountryCodeProvider {
// TODO(erfanian): Ensure the below standard is consistent between libphonenumber and the
diff --git a/java/com/android/dialer/assisteddialing/LocationDetector.java b/java/com/android/dialer/assisteddialing/LocationDetector.java
index 8e7535c1b..9fa944125 100644
--- a/java/com/android/dialer/assisteddialing/LocationDetector.java
+++ b/java/com/android/dialer/assisteddialing/LocationDetector.java
@@ -16,8 +16,6 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.telephony.TelephonyManager;
@@ -36,7 +34,7 @@ final class LocationDetector {
private final TelephonyManager telephonyManager;
private final String userProvidedHomeCountry;
- public LocationDetector(
+ LocationDetector(
@NonNull TelephonyManager telephonyManager, @Nullable String userProvidedHomeCountry) {
if (telephonyManager == null) {
throw new NullPointerException("Provided TelephonyManager was null");
@@ -53,9 +51,7 @@ final class LocationDetector {
* Returns what we believe to be the User's home country. This should resolve to
* PROPERTY_ICC_OPERATOR_ISO_COUNTRY
*/
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
- public Optional<String> getUpperCaseUserHomeCountry() {
+ Optional<String> getUpperCaseUserHomeCountry() {
if (!TextUtils.isEmpty(userProvidedHomeCountry)) {
LogUtil.i(
@@ -73,9 +69,7 @@ final class LocationDetector {
}
/** Returns what we believe to be the User's current (roaming) country */
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
- public Optional<String> getUpperCaseUserRoamingCountry() {
+ Optional<String> getUpperCaseUserRoamingCountry() {
// TODO Increase coverage of location resolution??
String networkCountryIso = telephonyManager.getNetworkCountryIso();
if (networkCountryIso != null) {
diff --git a/java/com/android/dialer/assisteddialing/NumberTransformer.java b/java/com/android/dialer/assisteddialing/NumberTransformer.java
index 8bbad329d..eabf8564e 100644
--- a/java/com/android/dialer/assisteddialing/NumberTransformer.java
+++ b/java/com/android/dialer/assisteddialing/NumberTransformer.java
@@ -16,9 +16,6 @@
package com.android.dialer.assisteddialing;
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
-import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.strictmode.StrictModeUtils;
@@ -33,21 +30,9 @@ final class NumberTransformer {
private final PhoneNumberUtil phoneNumberUtil;
private final Constraints constraints;
- public NumberTransformer(Constraints constraints) {
+ NumberTransformer(Constraints constraints) {
this.constraints = constraints;
- this.phoneNumberUtil = StrictModeUtils.bypass(() -> PhoneNumberUtil.getInstance());
- }
-
- /**
- * Returns a boolean for callers to quickly determine whether or not the AssistedDialingMediator
- * thinks an attempt at assisted dialing is likely to succeed.
- */
- public boolean canDoAssistedDialingTransformation(
- @NonNull String numberToCheck,
- @NonNull String userHomeCountryCode,
- @NonNull String userRoamingCountryCode) {
- return constraints.meetsPreconditions(
- numberToCheck, userHomeCountryCode, userRoamingCountryCode);
+ this.phoneNumberUtil = StrictModeUtils.bypass(PhoneNumberUtil::getInstance);
}
/**
@@ -57,9 +42,7 @@ final class NumberTransformer {
* transformation fails, we return an empty optional. The operation can be considered a success
* when the Optional we return has a value set.
*/
- @SuppressWarnings("AndroidApiChecker") // Use of optional
- @TargetApi(VERSION_CODES.N)
- public Optional<TransformationInfo> doAssistedDialingTransformation(
+ Optional<TransformationInfo> doAssistedDialingTransformation(
String numbertoTransform, String userHomeCountryCode, String userRoamingCountryCode) {
if (!constraints.meetsPreconditions(
diff --git a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
index 965a16975..2da25287e 100644
--- a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
+++ b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
@@ -15,10 +15,8 @@
*/
package com.android.dialer.assisteddialing.ui;
-import android.annotation.TargetApi;
import android.icu.util.ULocale;
import android.icu.util.ULocale.Builder;
-import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
@@ -38,8 +36,6 @@ import java.util.List;
import java.util.Optional;
/** The setting for Assisted Dialing */
-@TargetApi(VERSION_CODES.N)
-@SuppressWarnings("AndroidApiChecker") // Java 8 APIs
public class AssistedDialingSettingFragment extends PreferenceFragment {
private CountryCodeProvider countryCodeProvider;
diff --git a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
index 9e227553b..4d268f35b 100644
--- a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
+++ b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
@@ -263,14 +263,13 @@ public abstract class SpeedDialUiItem {
return defaultChannel();
}
- // Default channel is a video channel, so find it's corresponding voice channel
- Channel prevChannel = channels().get(0);
- for (int i = 1; i < channels().size(); i++) {
- Channel currentChannel = channels().get(i);
- if (currentChannel.equals(defaultChannel())) {
- return prevChannel;
+ // Default channel is a video channel, so find it's corresponding voice channel by number since
+ // unreachable channels may not be in the list
+ for (Channel currentChannel : channels()) {
+ if (currentChannel.number().equals(defaultChannel().number())
+ && currentChannel.technology() == Channel.VOICE) {
+ return currentChannel;
}
- prevChannel = currentChannel;
}
return null;
}
@@ -306,7 +305,8 @@ public abstract class SpeedDialUiItem {
public abstract String photoUri();
/**
- * Since a contact can have multiple phone numbers and each number can have multiple technologies,
+ * Returns a list of channels available. A Duo channel is included iff it is reachable. Since a
+ * contact can have multiple phone numbers and each number can have multiple technologies,
* enumerate each one here so that the user can choose the correct one. Each channel here
* represents a row in the {@link com.android.dialer.speeddial.DisambigDialog}.
*
@@ -330,7 +330,11 @@ public abstract class SpeedDialUiItem {
public abstract ImmutableList<Channel> channels();
/**
- * Will be null when the user hasn't chosen a default yet.
+ * Will be null when the user hasn't chosen a default yet. Note that a default channel may not be
+ * in the list returned by {@link #channels()}. This is because that list does not contain an
+ * unreachable Duo channel. When the default channel is a Duo channel and it becomes unreachable,
+ * it will remain as the default channel but disappear in the list returned by {@link
+ * #channels()}.
*
* @see com.android.dialer.speeddial.database.SpeedDialEntry#defaultChannel()
*/
diff --git a/java/com/android/dialer/theme/common/res/values/text_styles.xml b/java/com/android/dialer/theme/common/res/values/text_styles.xml
index 0d1fd850e..df5dafa31 100644
--- a/java/com/android/dialer/theme/common/res/values/text_styles.xml
+++ b/java/com/android/dialer/theme/common/res/values/text_styles.xml
@@ -43,6 +43,12 @@
<item name="android:fontFamily">sans-serif-regular</item>
</style>
+ <style name="Dialer.TextAppearance.Primary2" parent="TextAppearance.AppCompat">
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ <item name="android:textSize">16sp</item>
+ <item name="android:fontFamily">sans-serif-regular</item>
+ </style>
+
<style name="Dialer.TextAppearance.Secondary" parent="TextAppearance.AppCompat">
<item name="android:textColor">?android:attr/textColorSecondary</item>
<item name="android:textSize">14sp</item>
@@ -81,6 +87,11 @@
<item name="android:maxLines">1</item>
</style>
+ <style name="Dialer.TextAppearance.Primary2.Ellipsize">
+ <item name="android:ellipsize">end</item>
+ <item name="android:maxLines">1</item>
+ </style>
+
<style name="Dialer.TextAppearance.Secondary.Ellipsize">
<item name="android:ellipsize">end</item>
<item name="android:maxLines">1</item>
diff --git a/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java b/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java
index 39a791d5f..89e45dca7 100644
--- a/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java
+++ b/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java
@@ -21,6 +21,7 @@ import android.os.Bundle;
import android.support.annotation.IntDef;
import android.view.View;
import android.view.View.OnClickListener;
+import android.widget.Button;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -46,14 +47,21 @@ public class RecordVoicemailGreetingActivity extends Activity implements OnClick
private int currentState;
private int duration;
private RecordButton recordButton;
+ private Button saveButton;
+ private Button redoButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record_voicemail_greeting);
+ recordButton = findViewById(R.id.record_button);
+ saveButton = findViewById(R.id.save_button);
+ redoButton = findViewById(R.id.redo_button);
+
duration = 0;
setState(RECORD_GREETING_INIT);
+ recordButton.setOnClickListener(this);
}
@Override
@@ -83,18 +91,32 @@ public class RecordVoicemailGreetingActivity extends Activity implements OnClick
case RECORD_GREETING_INIT:
recordButton.setState(state);
recordButton.setTracks(0, 0);
+ setSaveRedoButtonsEnabled(false);
break;
case RECORD_GREETING_PLAYING_BACK:
case RECORD_GREETING_RECORDED:
recordButton.setState(state);
recordButton.setTracks(0, (float) duration / MAX_GREETING_DURATION_MS);
+ setSaveRedoButtonsEnabled(true);
break;
case RECORD_GREETING_RECORDING:
recordButton.setState(state);
recordButton.setTracks(0, 1f);
+ setSaveRedoButtonsEnabled(false);
break;
default:
break;
}
}
+
+ /** Enables/Disables save and redo buttons in the layout */
+ private void setSaveRedoButtonsEnabled(boolean enabled) {
+ if (enabled) {
+ saveButton.setVisibility(View.VISIBLE);
+ redoButton.setVisibility(View.VISIBLE);
+ } else {
+ saveButton.setVisibility(View.GONE);
+ redoButton.setVisibility(View.GONE);
+ }
+ }
}