summaryrefslogtreecommitdiff
path: root/java/com
diff options
context:
space:
mode:
authormdooley <mdooley@google.com>2017-09-01 13:09:55 -0700
committerEric Erfanian <erfanian@google.com>2017-09-07 15:48:41 +0000
commitf84694f480627d6bfc2857f3d363bb5ea4236a68 (patch)
treea0bf99ef24b70ef62fd6421de27f3bc6c9cab57a /java/com
parentb87a0dd2443df8b487232d310c889dc2ff2a47c5 (diff)
Adding dialer specific transcription error codes
These new states will be used to show descriptive failure messages to the user. Also moved the VoicemailCompat class to avoid duplicate code. Bug: 37340510 Test: none PiperOrigin-RevId: 167314611 Change-Id: I618d7f196ea2b0161cbd33479553cae3521328d7
Diffstat (limited to 'java/com')
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java3
-rw-r--r--java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java15
-rw-r--r--java/com/android/dialer/compat/android/provider/VoicemailCompat.java (renamed from java/com/android/voicemail/impl/transcribe/VoicemailCompat.java)20
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java1
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionTask.java16
5 files changed, 37 insertions, 18 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 61129a7ce..6540b6f95 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -70,6 +70,7 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.AsyncTaskExecutor;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.compat.android.provider.VoicemailCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
@@ -907,7 +908,7 @@ public class CallLogAdapter extends GroupingListAdapter
final int transcriptionState =
(VERSION.SDK_INT >= VERSION_CODES.O)
? cursor.getInt(CallLogQuery.TRANSCRIPTION_STATE)
- : PhoneCallDetailsHelper.TRANSCRIPTION_NOT_STARTED;
+ : VoicemailCompat.TRANSCRIPTION_NOT_STARTED;
final PhoneCallDetails details =
new PhoneCallDetails(number, numberPresentation, postDialDigits);
details.viaNumber = viaNumber;
diff --git a/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java b/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java
index c1a00e58d..a6e8f10f0 100644
--- a/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java
+++ b/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java
@@ -31,6 +31,7 @@ import android.widget.TextView;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.calllogcache.CallLogCache;
import com.android.dialer.calllogutils.PhoneCallDetails;
+import com.android.dialer.compat.android.provider.VoicemailCompat;
import com.android.dialer.logging.ContactSource;
import com.android.dialer.oem.MotorolaUtils;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
@@ -45,13 +46,6 @@ public class PhoneCallDetailsHelper {
/** The maximum number of icons will be shown to represent the call types in a group. */
private static final int MAX_CALL_TYPE_ICONS = 3;
- // TODO(mdooley): remove when these api's become public
- // Copied from android.provider.VoicemailContract
- static final int TRANSCRIPTION_NOT_STARTED = 0;
- static final int TRANSCRIPTION_IN_PROGRESS = 1;
- static final int TRANSCRIPTION_FAILED = 2;
- static final int TRANSCRIPTION_AVAILABLE = 3;
-
private final Context mContext;
private final Resources mResources;
private final CallLogCache mCallLogCache;
@@ -159,12 +153,13 @@ public class PhoneCallDetailsHelper {
// Set the branding text if the voicemail was transcribed by google
// TODO(mdooley): the transcription state is only set by the google transcription code,
// but a better solution would be to check the SOURCE_PACKAGE
- showTranscriptBranding = details.transcriptionState == TRANSCRIPTION_AVAILABLE;
+ showTranscriptBranding =
+ details.transcriptionState == VoicemailCompat.TRANSCRIPTION_AVAILABLE;
} else {
- if (details.transcriptionState == TRANSCRIPTION_IN_PROGRESS) {
+ if (details.transcriptionState == VoicemailCompat.TRANSCRIPTION_IN_PROGRESS) {
views.voicemailTranscriptionView.setText(
mResources.getString(R.string.voicemail_transcription_in_progress));
- } else if (details.transcriptionState == TRANSCRIPTION_FAILED) {
+ } else if (details.transcriptionState == VoicemailCompat.TRANSCRIPTION_FAILED) {
views.voicemailTranscriptionView.setText(
mResources.getString(R.string.voicemail_transcription_failed));
}
diff --git a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java b/java/com/android/dialer/compat/android/provider/VoicemailCompat.java
index c6e30c6de..175ea5d95 100644
--- a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
+++ b/java/com/android/dialer/compat/android/provider/VoicemailCompat.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License
*/
-package com.android.voicemail.impl.transcribe;
+package com.android.dialer.compat.android.provider;
/**
* Provide access to new API constants before they're publicly available
@@ -47,7 +47,7 @@ public class VoicemailCompat {
/**
* Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
- * failed.
+ * failed for an unspecified reason.
*/
public static final int TRANSCRIPTION_FAILED = 2;
@@ -56,4 +56,20 @@ public class VoicemailCompat {
* result has been stored in the {@link #TRANSCRIPTION} column.
*/
public static final int TRANSCRIPTION_AVAILABLE = 3;
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
+ * failed because no speech was detected.
+ *
+ * <p>Internal dialer use only, not part of the public SDK.
+ */
+ public static final int TRANSCRIPTION_FAILED_NO_SPEECH_DETECTED = -1;
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
+ * failed because the language was not supported.
+ *
+ * <p>Internal dialer use only, not part of the public SDK.
+ */
+ public static final int TRANSCRIPTION_FAILED_LANGUAGE_NOT_SUPPORTED = -2;
}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
index 9d3c2e4a7..a9a37225b 100644
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
@@ -30,6 +30,7 @@ import android.support.v4.os.BuildCompat;
import android.util.Pair;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.compat.android.provider.VoicemailCompat;
import java.util.ArrayList;
import java.util.List;
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
index b5f29da00..fbab07655 100644
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
@@ -22,6 +22,7 @@ import android.net.Uri;
import android.text.TextUtils;
import android.util.Pair;
import com.android.dialer.common.concurrent.ThreadUtil;
+import com.android.dialer.compat.android.provider.VoicemailCompat;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.voicemail.impl.VvmLog;
@@ -124,24 +125,29 @@ public abstract class TranscriptionTask implements Runnable {
} else {
VvmLog.i(TAG, "transcribeVoicemail, transcription unsuccessful, " + status);
switch (status) {
+ case FAILED_NO_SPEECH_DETECTED:
+ updateTranscriptionAndState(
+ transcript, VoicemailCompat.TRANSCRIPTION_FAILED_NO_SPEECH_DETECTED);
+ Logger.get(context)
+ .logImpression(DialerImpression.Type.VVM_TRANSCRIPTION_RESPONSE_NO_SPEECH_DETECTED);
+ break;
case FAILED_LANGUAGE_NOT_SUPPORTED:
+ updateTranscriptionAndState(
+ transcript, VoicemailCompat.TRANSCRIPTION_FAILED_LANGUAGE_NOT_SUPPORTED);
Logger.get(context)
.logImpression(
DialerImpression.Type.VVM_TRANSCRIPTION_RESPONSE_LANGUAGE_NOT_SUPPORTED);
break;
- case FAILED_NO_SPEECH_DETECTED:
- Logger.get(context)
- .logImpression(DialerImpression.Type.VVM_TRANSCRIPTION_RESPONSE_NO_SPEECH_DETECTED);
- break;
case EXPIRED:
+ updateTranscriptionAndState(transcript, VoicemailCompat.TRANSCRIPTION_FAILED);
Logger.get(context)
.logImpression(DialerImpression.Type.VVM_TRANSCRIPTION_RESPONSE_EXPIRED);
break;
default:
+ updateTranscriptionAndState(transcript, VoicemailCompat.TRANSCRIPTION_FAILED);
Logger.get(context).logImpression(DialerImpression.Type.VVM_TRANSCRIPTION_RESPONSE_EMPTY);
break;
}
- updateTranscriptionAndState(transcript, VoicemailCompat.TRANSCRIPTION_FAILED);
}
}