Encapsulating all fields on DirectoryPartition
Change-Id: I903c720d0df1ef5bf46064f03a889389b31691fe
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
index 4ff7f0c..a97402a 100644
--- a/src/com/android/contacts/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -81,7 +81,7 @@
}
int partitionIndex = getPartitionCount();
mPartitions.put(partitionIndex, partition);
- addPartition(partition.showIfEmpty, partition.directoryType != null);
+ addPartition(partition.getShowIfEmpty(), partition.getDirectoryType() != null);
}
public abstract String getContactDisplayName(int position);
@@ -239,10 +239,10 @@
DirectoryPartition directoryPartition = mPartitions.get(partition);
TextView directoryTypeTextView = (TextView)view.findViewById(R.id.directory_type);
- directoryTypeTextView.setText(directoryPartition.directoryType);
+ directoryTypeTextView.setText(directoryPartition.getDirectoryType());
TextView displayNameTextView = (TextView)view.findViewById(R.id.display_name);
- if (!TextUtils.isEmpty(directoryPartition.displayName)) {
- displayNameTextView.setText(directoryPartition.displayName);
+ if (!TextUtils.isEmpty(directoryPartition.getDisplayName())) {
+ displayNameTextView.setText(directoryPartition.getDisplayName());
displayNameTextView.setVisibility(View.VISIBLE);
} else {
displayNameTextView.setVisibility(View.GONE);
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 07f6d48..7ec625e 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -196,22 +196,23 @@
try {
while (data.moveToNext()) {
DirectoryPartition partition = new DirectoryPartition();
- partition.directoryId = data.getLong(DirectoryQuery.ID);
+ partition.setDirectoryId(data.getLong(DirectoryQuery.ID));
String packageName = data.getString(DirectoryQuery.PACKAGE_NAME);
int typeResourceId = data.getInt(DirectoryQuery.TYPE_RESOURCE_ID);
if (!TextUtils.isEmpty(packageName) && typeResourceId != 0) {
// TODO: should this be done on a background thread?
try {
- partition.directoryType = pm.getResourcesForApplication(packageName)
- .getString(typeResourceId);
+ partition.setDirectoryType(pm.getResourcesForApplication(packageName)
+ .getString(typeResourceId));
} catch (Exception e) {
Log.e(TAG, "Cannot obtain directory type from package: " + packageName);
}
}
- partition.displayName = data.getString(DirectoryQuery.DISPLAY_NAME);
+ partition.setDisplayName(data.getString(DirectoryQuery.DISPLAY_NAME));
// TODO obtain the "showIfEmpty" from directory meta-data
- partition.showIfEmpty = partition.directoryId != Directory.LOCAL_INVISIBLE;
+ partition.setShowIfEmpty(
+ partition.getDirectoryId() != Directory.LOCAL_INVISIBLE);
String directoryType = null;
@@ -225,7 +226,7 @@
int size = mDirectoryPartitions.size();
for (int i = 0; i < size; i++) {
DirectoryPartition partition = mDirectoryPartitions.get(i);
- partition.partitionIndex = i;
+ partition.setPartitionIndex(i);
mAdapter.addDirectoryPartition(partition);
}
@@ -248,7 +249,7 @@
protected void loadPartitions() {
for (DirectoryPartition partition : mDirectoryPartitions) {
- CursorLoader loader = (CursorLoader)getLoader(partition.partitionIndex);
+ CursorLoader loader = (CursorLoader)getLoader(partition.getPartitionIndex());
if (loader != null) {
loader.cancelLoad();
}
@@ -259,8 +260,8 @@
startLoading(DIRECTORY_LOADER_ID, null);
} else {
DirectoryPartition directoryPartition = new DirectoryPartition();
- directoryPartition.directoryId = Directory.DEFAULT;
- directoryPartition.partitionIndex = 0;
+ directoryPartition.setDirectoryId(Directory.DEFAULT);
+ directoryPartition.setPartitionIndex(0);
mDirectoryPartitions.add(directoryPartition);
if (mAdapter != null) {
mAdapter.resetPartitions();
@@ -278,13 +279,13 @@
configureAdapter();
for (DirectoryPartition partition : mDirectoryPartitions) {
- CursorLoader loader = (CursorLoader)getLoader(partition.partitionIndex);
+ CursorLoader loader = (CursorLoader)getLoader(partition.getPartitionIndex());
if (loader == null) {
Bundle args = new Bundle();
- args.putLong(DIRECTORY_ID_ARG_KEY, partition.directoryId);
- startLoading(partition.partitionIndex, args);
+ args.putLong(DIRECTORY_ID_ARG_KEY, partition.getDirectoryId());
+ startLoading(partition.getPartitionIndex(), args);
} else {
- mAdapter.configureLoader(loader, partition.directoryId);
+ mAdapter.configureLoader(loader, partition.getDirectoryId());
if (forceLoad) {
loader.forceLoad();
}
diff --git a/src/com/android/contacts/list/DirectoryPartition.java b/src/com/android/contacts/list/DirectoryPartition.java
index 1e8b3a7..9db982b 100644
--- a/src/com/android/contacts/list/DirectoryPartition.java
+++ b/src/com/android/contacts/list/DirectoryPartition.java
@@ -15,6 +15,7 @@
*/
package com.android.contacts.list;
+import android.database.Cursor;
import android.provider.ContactsContract.Directory;
/**
@@ -25,27 +26,66 @@
/**
* Directory ID, see {@link Directory}.
*/
- long directoryId;
+ private long mDirectoryId;
/**
* Corresponding loader ID.
*/
- int partitionIndex;
+ private int mPartitionIndex;
/**
* Directory type resolved from {@link Directory#PACKAGE_NAME} and
* {@link Directory#TYPE_RESOURCE_ID};
*/
- public String directoryType;
+ private String mDirectoryType;
/**
* See {@link Directory#DISPLAY_NAME}.
*/
- public String displayName;
+ private String mDisplayName;
/**
* True if the directory should be shown even if no contacts are found.
*/
- public boolean showIfEmpty;
+ private boolean mShowIfEmpty;
+ public long getDirectoryId() {
+ return mDirectoryId;
+ }
+
+ public void setDirectoryId(long directoryId) {
+ this.mDirectoryId = directoryId;
+ }
+
+ public int getPartitionIndex() {
+ return mPartitionIndex;
+ }
+
+ public void setPartitionIndex(int partitionIndex) {
+ this.mPartitionIndex = partitionIndex;
+ }
+
+ public String getDirectoryType() {
+ return mDirectoryType;
+ }
+
+ public void setDirectoryType(String directoryType) {
+ this.mDirectoryType = directoryType;
+ }
+
+ public String getDisplayName() {
+ return mDisplayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.mDisplayName = displayName;
+ }
+
+ public boolean getShowIfEmpty() {
+ return mShowIfEmpty;
+ }
+
+ public void setShowIfEmpty(boolean showIfEmpty) {
+ this.mShowIfEmpty = showIfEmpty;
+ }
}
\ No newline at end of file