From 9c70e4ca34c2f3f0c5d48b549602603eed7a6c2e Mon Sep 17 00:00:00 2001 From: wangqi Date: Wed, 2 May 2018 12:24:03 -0700 Subject: Add column for call mapping id to AnnotatedCallLog database. This will ensure call mapping used by RTT etc. won't break when migrating to new way to generate the call mapping id since they are stored in the database already. Bug: 77717594 Test: unit tests PiperOrigin-RevId: 195132562 Change-Id: Ieb52489b19b37ac2701967eb570a96457ceed4c0 --- .../database/AnnotatedCallLogDatabaseHelper.java | 26 +++++++++++++++++++--- .../contract/AnnotatedCallLogContract.java | 11 +++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) (limited to 'java/com/android/dialer/calllog/database') diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java index 61f7debf7..32f303fb4 100644 --- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java +++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java @@ -45,7 +45,7 @@ public class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper { @ApplicationContext Context appContext, @AnnotatedCallLogMaxRows int maxRows, @BackgroundExecutor ListeningExecutorService backgroundExecutor) { - super(appContext, FILENAME, null, 1); + super(appContext, FILENAME, null, 2); this.appContext = appContext; this.maxRows = maxRows; @@ -75,9 +75,24 @@ public class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper { + (AnnotatedCallLog.NUMBER_ATTRIBUTES + " blob, ") + (AnnotatedCallLog.IS_VOICEMAIL_CALL + " integer, ") + (AnnotatedCallLog.VOICEMAIL_CALL_TAG + " text, ") - + (AnnotatedCallLog.TRANSCRIPTION_STATE + " integer") + + (AnnotatedCallLog.TRANSCRIPTION_STATE + " integer, ") + + (AnnotatedCallLog.CALL_MAPPING_ID + " text") + ");"; + private static final String ALTER_TABLE_SQL_ADD_CALL_MAPPING_ID_COLUMN = + "alter table " + + AnnotatedCallLog.TABLE + + " add column " + + AnnotatedCallLog.CALL_MAPPING_ID + + " text;"; + private static final String UPDATE_CALL_MAPPING_ID_COLUMN = + "update " + + AnnotatedCallLog.TABLE + + " set " + + AnnotatedCallLog.CALL_MAPPING_ID + + " = " + + AnnotatedCallLog.TIMESTAMP; + /** * Deletes all but the first maxRows rows (by timestamp, excluding voicemails) to keep the table a * manageable size. @@ -143,7 +158,12 @@ public class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper { } @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + if (oldVersion == 1 && newVersion == 2) { + db.execSQL(ALTER_TABLE_SQL_ADD_CALL_MAPPING_ID_COLUMN); + db.execSQL(UPDATE_CALL_MAPPING_ID_COLUMN); + } + } /** Closes the database and deletes it. */ public ListenableFuture delete() { diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java index 5e4e4afd3..ee888d196 100644 --- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java +++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java @@ -221,6 +221,17 @@ public class AnnotatedCallLogContract { *

TYPE: TEXT */ public static final String VOICEMAIL_URI = "voicemail_uri"; + + /** + * An unique id to associate this call log row to a {@link android.telecom.Call}. + * + *

For pre-Q device, this is same as {@link TIMESTAMP}. + * + *

For Q+ device, this will be copied from {@link android.provider.CallLog.Calls}. + * + *

Type: TEXT + */ + public static final String CALL_MAPPING_ID = "call_mapping_id"; } /** -- cgit v1.2.3