summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/speeddial/database
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2018-04-09 14:16:47 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-09 14:49:20 -0700
commit62b96291dd2bf025f0f84ba0376301a31a6b8776 (patch)
treebc639247443482f8f708552e201cf0978e441298 /java/com/android/dialer/speeddial/database
parentff404929afbea0bacce10512b8a5adc9ab28e509 (diff)
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
Diffstat (limited to 'java/com/android/dialer/speeddial/database')
-rw-r--r--java/com/android/dialer/speeddial/database/SpeedDialEntry.java10
-rw-r--r--java/com/android/dialer/speeddial/database/SpeedDialEntryDao.java6
-rw-r--r--java/com/android/dialer/speeddial/database/SpeedDialEntryDatabaseHelper.java32
3 files changed, 32 insertions, 16 deletions
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.
+ *
+ * <p>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;
}