summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java')
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index da93ff8a3..eed77ebed 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -19,6 +19,7 @@ package com.android.dialer.calllog.database;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
+import android.provider.CallLog.Calls;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.common.LogUtil;
import java.util.Locale;
@@ -52,17 +53,23 @@ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
+ (AnnotatedCallLog.FEATURES + " integer, ")
+ (AnnotatedCallLog.TRANSCRIPTION + " integer, ")
+ (AnnotatedCallLog.VOICEMAIL_URI + " text, ")
- + (AnnotatedCallLog.CALL_TYPE + " integer, ")
+ + (AnnotatedCallLog.CALL_TYPE + " integer not null, ")
+ (AnnotatedCallLog.NUMBER_ATTRIBUTES + " blob ")
+ ");";
- /** Deletes all but the first maxRows rows (by timestamp) to keep the table a manageable size. */
- // TODO(zachh): Prevent voicemails from being garbage collected.
+ /**
+ * Deletes all but the first maxRows rows (by timestamp, excluding voicemails) to keep the table a
+ * manageable size.
+ */
private static final String CREATE_TRIGGER_SQL =
"create trigger delete_old_rows after insert on "
+ AnnotatedCallLog.TABLE
+ " when (select count(*) from "
+ AnnotatedCallLog.TABLE
+ + " where "
+ + AnnotatedCallLog.CALL_TYPE
+ + " != "
+ + Calls.VOICEMAIL_TYPE
+ ") > %d"
+ " begin delete from "
+ AnnotatedCallLog.TABLE
@@ -72,10 +79,18 @@ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
+ AnnotatedCallLog._ID
+ " from "
+ AnnotatedCallLog.TABLE
+ + " where "
+ + AnnotatedCallLog.CALL_TYPE
+ + " != "
+ + Calls.VOICEMAIL_TYPE
+ " order by timestamp limit (select count(*)-%d"
+ " from "
+ AnnotatedCallLog.TABLE
- + " )); end;";
+ + " where "
+ + AnnotatedCallLog.CALL_TYPE
+ + " != "
+ + Calls.VOICEMAIL_TYPE
+ + ")); end;";
private static final String CREATE_INDEX_ON_CALL_TYPE_SQL =
"create index call_type_index on "