summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorWilhelm Fitzpatrick <rafial@cyngn.com>2014-11-03 14:30:09 -0800
committerlinus_lee <llee@cyngn.com>2014-11-20 12:51:37 -0800
commit38df2d887b42c6af8d363a65dfef5d6ba3a1e7ae (patch)
treeabb811296b5e2d12036467c969796a2bc58d3946 /src/com
parent08db465010b2d93909b4a10a44a57dd0d2befd09 (diff)
downloadandroid_packages_apps_Eleven-38df2d887b42c6af8d363a65dfef5d6ba3a1e7ae.tar.gz
android_packages_apps_Eleven-38df2d887b42c6af8d363a65dfef5d6ba3a1e7ae.tar.bz2
android_packages_apps_Eleven-38df2d887b42c6af8d363a65dfef5d6ba3a1e7ae.zip
Eleven: changed AlbumAdapter to use padding for header/footer spacing
Addresses https://cyanogen.atlassian.net/browse/MUSIC-145 and also fixes regression where AlbumFragment was not displaying the "no music" view when no music was available. Change-Id: I89dddb99f396b0560106edc20236cf6754446691
Diffstat (limited to 'src/com')
-rw-r--r--src/com/cyngn/eleven/adapters/AlbumAdapter.java78
1 files changed, 30 insertions, 48 deletions
diff --git a/src/com/cyngn/eleven/adapters/AlbumAdapter.java b/src/com/cyngn/eleven/adapters/AlbumAdapter.java
index 0d520d4..762930b 100644
--- a/src/com/cyngn/eleven/adapters/AlbumAdapter.java
+++ b/src/com/cyngn/eleven/adapters/AlbumAdapter.java
@@ -37,14 +37,6 @@ import java.util.List;
* @author Andrew Neal (andrewdneal@gmail.com)
*/
public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
-
- /**
- * Number of views (ImageView and TextView)
- */
- private static final int VIEW_TYPE_COUNT = 2;
- private static final int VIEW_TYPE_HEADER = 0;
- private static final int VIEW_TYPE_ITEM = 1;
-
/**
* The resource Id of the layout to inflate
*/
@@ -67,8 +59,9 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
private IPopupMenuCallback.IListener mListener;
/** number of columns of containing grid view,
- * used to determine how many headers to show */
+ * used to determine which views to pad */
private int mColumns;
+ private int mPadding;
private Context mContext;
@@ -86,6 +79,7 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
mLayoutId = layoutId;
// Initialize the cache & image fetcher
mImageFetcher = ApolloUtils.getImageFetcher(context);
+ mPadding = context.getResources().getDimensionPixelSize(R.dimen.list_item_general_margin);
}
/**
@@ -93,13 +87,6 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
*/
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
- if(getItemViewType(position) == VIEW_TYPE_HEADER) {
- if(convertView != null) {
- return convertView;
- }
- return LayoutInflater.from(mContext).inflate(R.layout.grid_header, parent, false);
- }
-
// Recycle ViewHolder's items
MusicHolder holder;
if (convertView == null) {
@@ -112,8 +99,10 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
holder = (MusicHolder)convertView.getTag();
}
+ adjustPadding(position, convertView);
+
// Retrieve the data holder
- final DataHolder dataHolder = mData[position - mColumns];
+ final DataHolder dataHolder = mData[position];
// Sets the position each time because of recycling
holder.mPopupMenuButton.get().setPosition(position);
@@ -122,54 +111,47 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
// Set the artist name (line two)
holder.mLineTwo.get().setText(dataHolder.mLineTwo);
// Asynchronously load the album images into the adapter
- mImageFetcher.loadAlbumImage(dataHolder.mLineTwo, dataHolder.mLineOne, dataHolder.mItemId,
- holder.mImage.get());
+ mImageFetcher.loadAlbumImage(
+ dataHolder.mLineTwo, dataHolder.mLineOne,
+ dataHolder.mItemId, holder.mImage.get());
return convertView;
}
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean hasStableIds() {
- return true;
+ private void adjustPadding(final int position, View convertView) {
+ if (position < mColumns) {
+ // first row
+ convertView.setPadding(0, mPadding, 0, 0);
+ return;
+ }
+ int count = getCount();
+ int footers = count % mColumns;
+ if (footers == 0) { footers = mColumns; }
+ if (position >= (count-footers)) {
+ // last row
+ convertView.setPadding(0, 0, 0, mPadding);
+ } else {
+ // middle rows
+ convertView.setPadding(0, 0 ,0, 0);
+ }
}
/**
* {@inheritDoc}
*/
@Override
- public int getViewTypeCount() {
- return VIEW_TYPE_COUNT;
- }
-
- @Override
- public int getItemViewType(int position) {
- if(position < mColumns) {
- return VIEW_TYPE_HEADER;
- } else {
- return VIEW_TYPE_ITEM;
- }
- }
-
- @Override
- public boolean isEnabled(int position) {
- return getItemViewType(position) == VIEW_TYPE_ITEM;
+ public boolean hasStableIds() {
+ return true;
}
@Override
public int getCount() {
- return mAlbums.size() + mColumns; // data items plus headers
+ return mAlbums.size();
}
@Override
public Album getItem(int pos) {
- if(pos < mColumns) {
- return null; // header position
- } else {
- return mAlbums.get(pos - mColumns);
- }
+ return mAlbums.get(pos);
}
@Override
@@ -241,7 +223,7 @@ public class AlbumAdapter extends BaseAdapter implements IPopupMenuCallback {
int i = 0;
for (Album album : mAlbums) {
if (album.mAlbumId == id) {
- return mColumns + i;
+ return i;
}
i++;
}