summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/rtt/RttTranscriptUtil.java
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-04-12 14:44:06 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-12 16:20:40 -0700
commitd6b10d559f345eab2dd3dd89b07cfc3fd79c59bc (patch)
tree0f1f4cc08e164cde9f891f83749edff34eb94a89 /java/com/android/dialer/rtt/RttTranscriptUtil.java
parent9ef6d8c84b7b33e069258d41db9eef16e3d2b9fa (diff)
Add RTT transcript to call details.
1. Save RTT transcript when call is destroyed 2. Show RTT transcript link when it's available Bug: 67596257,77717594 Test: manual PiperOrigin-RevId: 192673172 Change-Id: If541ad9137c965166548d2fb449e835b95566727
Diffstat (limited to 'java/com/android/dialer/rtt/RttTranscriptUtil.java')
-rw-r--r--java/com/android/dialer/rtt/RttTranscriptUtil.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/java/com/android/dialer/rtt/RttTranscriptUtil.java b/java/com/android/dialer/rtt/RttTranscriptUtil.java
new file mode 100644
index 000000000..e55d2ea55
--- /dev/null
+++ b/java/com/android/dialer/rtt/RttTranscriptUtil.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.rtt;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.common.Assert;
+import com.android.dialer.rtt.RttTranscriptContract.RttTranscriptColumn;
+import com.google.protobuf.InvalidProtocolBufferException;
+
+/** Util class to save and load RTT transcript. */
+public final class RttTranscriptUtil {
+
+ private final RttTranscriptDatabaseHelper databaseHelper;
+
+ public RttTranscriptUtil(Context context) {
+ databaseHelper = new RttTranscriptDatabaseHelper(context);
+ }
+
+ /** @return true if there is RTT transcript available. */
+ @WorkerThread
+ public boolean checkRttTranscriptAvailability(String transcriptId) {
+ Assert.isWorkerThread();
+ try (Cursor cursor =
+ databaseHelper
+ .getReadableDatabase()
+ .query(
+ RttTranscriptDatabaseHelper.TABLE,
+ new String[] {RttTranscriptColumn.TRANSCRIPT_ID},
+ RttTranscriptColumn.TRANSCRIPT_ID + " = ?",
+ new String[] {transcriptId},
+ null,
+ null,
+ null)) {
+ if (cursor != null && cursor.moveToFirst()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ @WorkerThread
+ public RttTranscript getRttTranscript(String transcriptId) {
+ Assert.isWorkerThread();
+ try (Cursor cursor =
+ databaseHelper
+ .getReadableDatabase()
+ .query(
+ RttTranscriptDatabaseHelper.TABLE,
+ new String[] {RttTranscriptColumn.TRANSCRIPT_DATA},
+ RttTranscriptColumn.TRANSCRIPT_ID + " = ?",
+ new String[] {transcriptId},
+ null,
+ null,
+ null)) {
+ if (cursor != null && cursor.moveToFirst()) {
+ try {
+ return RttTranscript.parseFrom(cursor.getBlob(0));
+ } catch (InvalidProtocolBufferException e) {
+ throw new RuntimeException("Parse failed for RTT transcript", e);
+ }
+ } else {
+ return null;
+ }
+ }
+ }
+
+ @WorkerThread
+ public void saveRttTranscript(RttTranscript rttTranscript) {
+ Assert.isWorkerThread();
+ ContentValues value = new ContentValues();
+ value.put(RttTranscriptColumn.TRANSCRIPT_ID, rttTranscript.getId());
+ value.put(RttTranscriptColumn.TRANSCRIPT_DATA, rttTranscript.toByteArray());
+ long id =
+ databaseHelper.getWritableDatabase().insert(RttTranscriptDatabaseHelper.TABLE, null, value);
+ if (id < 0) {
+ throw new RuntimeException("Failed to save RTT transcript");
+ }
+ }
+}