From 62b96291dd2bf025f0f84ba0376301a31a6b8776 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Mon, 9 Apr 2018 14:16:47 -0700 Subject: Implemented SpeedDialUiItemLoader. SpeedDialUiItemLoader builds a listenable future for returning a list of SpeedDialUiItems which are the POJO representation of each speed dial list element. Bug: 36841782 Test: SpeedDialContentObserverTest PiperOrigin-RevId: 192186376 Change-Id: I70f3abbeac14117ff4a68355e3a07b395b72386b --- .../dialer/speeddial/database/SpeedDialEntry.java | 10 +++++-- .../speeddial/database/SpeedDialEntryDao.java | 6 +++- .../database/SpeedDialEntryDatabaseHelper.java | 32 +++++++++++++--------- 3 files changed, 32 insertions(+), 16 deletions(-) (limited to 'java/com/android/dialer/speeddial/database') diff --git a/java/com/android/dialer/speeddial/database/SpeedDialEntry.java b/java/com/android/dialer/speeddial/database/SpeedDialEntry.java index aa90909f1..f63619480 100644 --- a/java/com/android/dialer/speeddial/database/SpeedDialEntry.java +++ b/java/com/android/dialer/speeddial/database/SpeedDialEntry.java @@ -72,13 +72,17 @@ public abstract class SpeedDialEntry { public static final int UNKNOWN = 0; public static final int VOICE = 1; - public static final int VIDEO = 2; + public static final int IMS_VIDEO = 2; + public static final int DUO = 3; /** Whether the Channel is for an audio or video call. */ @Retention(RetentionPolicy.SOURCE) - @IntDef({UNKNOWN, VOICE, VIDEO}) + @IntDef({UNKNOWN, VOICE, IMS_VIDEO, DUO}) public @interface Technology {} + public boolean isVideoTechnology() { + return technology() == IMS_VIDEO || technology() == DUO; + } /** * Raw phone number as the user entered it. * @@ -96,6 +100,8 @@ public abstract class SpeedDialEntry { public abstract @Technology int technology(); + public abstract Builder toBuilder(); + public static Builder builder() { return new AutoValue_SpeedDialEntry_Channel.Builder(); } diff --git a/java/com/android/dialer/speeddial/database/SpeedDialEntryDao.java b/java/com/android/dialer/speeddial/database/SpeedDialEntryDao.java index 39cb115c8..0efc110f4 100644 --- a/java/com/android/dialer/speeddial/database/SpeedDialEntryDao.java +++ b/java/com/android/dialer/speeddial/database/SpeedDialEntryDao.java @@ -18,7 +18,11 @@ package com.android.dialer.speeddial.database; import java.util.List; -/** Interface that databases support speed dial entries should implement. */ +/** + * Interface that databases support speed dial entries should implement. + * + *

This database is only used for favorite/starred contacts. + */ public interface SpeedDialEntryDao { /** Return all entries in the database */ diff --git a/java/com/android/dialer/speeddial/database/SpeedDialEntryDatabaseHelper.java b/java/com/android/dialer/speeddial/database/SpeedDialEntryDatabaseHelper.java index 1812dbdc0..01d49c3d7 100644 --- a/java/com/android/dialer/speeddial/database/SpeedDialEntryDatabaseHelper.java +++ b/java/com/android/dialer/speeddial/database/SpeedDialEntryDatabaseHelper.java @@ -28,7 +28,11 @@ import com.android.dialer.speeddial.database.SpeedDialEntry.Channel; import java.util.ArrayList; import java.util.List; -/** {@link SpeedDialEntryDao} implemented as an SQLite database. */ +/** + * {@link SpeedDialEntryDao} implemented as an SQLite database. + * + * @see SpeedDialEntryDao + */ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper implements SpeedDialEntryDao { @@ -42,7 +46,7 @@ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper private static final String LOOKUP_KEY = "lookup_key"; private static final String PHONE_NUMBER = "phone_number"; private static final String PHONE_LABEL = "phone_label"; - private static final String PHONE_TYPE = "phone_type"; + private static final String PHONE_TECHNOLOGY = "phone_technology"; // Column positions private static final int POSITION_ID = 0; @@ -50,7 +54,7 @@ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper private static final int POSITION_LOOKUP_KEY = 2; private static final int POSITION_PHONE_NUMBER = 3; private static final int POSITION_PHONE_LABEL = 4; - private static final int POSITION_PHONE_TYPE = 5; + private static final int POSITION_PHONE_TECHNOLOGY = 5; // Create Table Query private static final String CREATE_TABLE_SQL = @@ -62,7 +66,7 @@ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper + (LOOKUP_KEY + " text, ") + (PHONE_NUMBER + " text, ") + (PHONE_LABEL + " text, ") - + (PHONE_TYPE + " integer ") + + (PHONE_TECHNOLOGY + " integer ") + ");"; private static final String DELETE_TABLE_SQL = "drop table if exists " + TABLE_NAME; @@ -98,15 +102,17 @@ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper Cursor cursor = db.rawQuery(query, null)) { cursor.moveToPosition(-1); while (cursor.moveToNext()) { - Channel channel = - Channel.builder() - .setNumber(cursor.getString(POSITION_PHONE_NUMBER)) - .setLabel(cursor.getString(POSITION_PHONE_LABEL)) - .setTechnology(cursor.getInt(POSITION_PHONE_TYPE)) - .build(); - if (TextUtils.isEmpty(channel.number())) { - channel = null; + String number = cursor.getString(POSITION_PHONE_NUMBER); + Channel channel = null; + if (!TextUtils.isEmpty(number)) { + channel = + Channel.builder() + .setNumber(number) + .setLabel(cursor.getString(POSITION_PHONE_LABEL)) + .setTechnology(cursor.getInt(POSITION_PHONE_TECHNOLOGY)) + .build(); } + SpeedDialEntry entry = SpeedDialEntry.builder() .setDefaultChannel(channel) @@ -183,7 +189,7 @@ public final class SpeedDialEntryDatabaseHelper extends SQLiteOpenHelper if (entry.defaultChannel() != null) { values.put(PHONE_NUMBER, entry.defaultChannel().number()); values.put(PHONE_LABEL, entry.defaultChannel().label()); - values.put(PHONE_TYPE, entry.defaultChannel().technology()); + values.put(PHONE_TECHNOLOGY, entry.defaultChannel().technology()); } return values; } -- cgit v1.2.3