From cd49d581edf212045905b04331bc60d980697208 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Fri, 4 Aug 2017 12:35:55 -0700 Subject: Update Directory POJO to use AutoValue and removed type attribute. Bug: 37209462 Test: RemoteDirectoriesCursorLoaderTest PiperOrigin-RevId: 164295668 Change-Id: I5d9c54fa748d19f09b62a33ff12a7de8a71d64d3 --- .../remote/RemoteContactsCursorLoader.java | 2 +- .../remote/RemoteDirectoriesCursorLoader.java | 70 +++++----------------- 2 files changed, 16 insertions(+), 56 deletions(-) (limited to 'java/com') diff --git a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java index d4b196389..c9cd7655d 100644 --- a/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java +++ b/java/com/android/dialer/searchfragment/remote/RemoteContactsCursorLoader.java @@ -41,7 +41,7 @@ final class RemoteContactsCursorLoader extends CursorLoader { RemoteContactsCursorLoader(Context context, String query, Directory directory) { super( context, - getContentFilterUri(query, directory.id), + getContentFilterUri(query, directory.getId()), Projections.PHONE_PROJECTION, IGNORE_NUMBER_TOO_LONG_CLAUSE, null, diff --git a/java/com/android/dialer/searchfragment/remote/RemoteDirectoriesCursorLoader.java b/java/com/android/dialer/searchfragment/remote/RemoteDirectoriesCursorLoader.java index 0a4ca0ecd..630c73cd4 100644 --- a/java/com/android/dialer/searchfragment/remote/RemoteDirectoriesCursorLoader.java +++ b/java/com/android/dialer/searchfragment/remote/RemoteDirectoriesCursorLoader.java @@ -19,7 +19,6 @@ package com.android.dialer.searchfragment.remote; import android.content.Context; import android.content.CursorLoader; -import android.content.pm.PackageManager.NameNotFoundException; import android.database.Cursor; import android.net.Uri; import android.os.Build.VERSION; @@ -27,8 +26,7 @@ import android.os.Build.VERSION_CODES; import android.provider.ContactsContract; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; -import android.text.TextUtils; -import com.android.dialer.common.LogUtil; +import com.google.auto.value.AutoValue; /** CursorLoader to load the list of remote directories on the device. */ public final class RemoteDirectoriesCursorLoader extends CursorLoader { @@ -36,16 +34,12 @@ public final class RemoteDirectoriesCursorLoader extends CursorLoader { /** Positions of columns in {@code PROJECTIONS}. */ private static final int ID = 0; - private static final int PACKAGE_NAME = 1; - private static final int TYPE_RESOURCE_ID = 2; - private static final int DISPLAY_NAME = 3; - private static final int PHOTO_SUPPORT = 4; + private static final int DISPLAY_NAME = 1; + private static final int PHOTO_SUPPORT = 2; @VisibleForTesting static final String[] PROJECTION = { ContactsContract.Directory._ID, - ContactsContract.Directory.PACKAGE_NAME, - ContactsContract.Directory.TYPE_RESOURCE_ID, ContactsContract.Directory.DISPLAY_NAME, ContactsContract.Directory.PHOTO_SUPPORT, }; @@ -54,39 +48,10 @@ public final class RemoteDirectoriesCursorLoader extends CursorLoader { super(context, getContentUri(), PROJECTION, null, null, ContactsContract.Directory._ID); } - /** - * Returns the type of directory as a String (e.g. "Corporate Directory"). Null if the directory - * type cannot be found. - */ - @Nullable - private static String getDirectoryType(Context context, Cursor cursor) { - String packageName = cursor.getString(PACKAGE_NAME); - int typeResourceId = cursor.getInt(TYPE_RESOURCE_ID); - if (TextUtils.isEmpty(packageName) || typeResourceId == 0) { - return null; - } - - try { - return context - .getPackageManager() - .getResourcesForApplication(packageName) - .getString(typeResourceId); - } catch (NameNotFoundException e) { - LogUtil.e( - "ContactEntryListAdapter.loadInBackground", - "cannot obtain directory type from package: %s", - packageName); - return null; - } - } - /** @return current cursor row represented as a {@link Directory}. */ - public static Directory readDirectory(Context context, Cursor cursor) { - return new Directory( - cursor.getInt(ID), - cursor.getString(DISPLAY_NAME), - getDirectoryType(context, cursor), - cursor.getInt(PHOTO_SUPPORT) != 0); + static Directory readDirectory(Cursor cursor) { + return Directory.create( + cursor.getInt(ID), cursor.getString(DISPLAY_NAME), cursor.getInt(PHOTO_SUPPORT) != 0); } private static Uri getContentUri() { @@ -96,22 +61,17 @@ public final class RemoteDirectoriesCursorLoader extends CursorLoader { } /** POJO representing the results returned from {@link RemoteDirectoriesCursorLoader}. */ - public static class Directory { + @AutoValue + public abstract static class Directory { + static Directory create(int id, @Nullable String displayName, boolean supportsPhotos) { + return new AutoValue_RemoteDirectoriesCursorLoader_Directory(id, displayName, supportsPhotos); + } - public final int id; - // TODO(calderwoodra): investigate which of these fields will be used as the display name and - // update the fields and javadoc accordingly. - /** An optional name that can be used in the UI to represent the directory. */ - @Nullable public final String name; + abstract int getId(); - @Nullable public final String type; - public final boolean supportsPhotos; + /** Returns a user facing display name of the directory. Null if none exists. */ + abstract @Nullable String getDisplayName(); - public Directory(int id, String name, @Nullable String type, boolean supportsPhotos) { - this.id = id; - this.name = name; - this.type = type; - this.supportsPhotos = supportsPhotos; - } + abstract boolean supportsPhotos(); } } -- cgit v1.2.3