diff --git a/res/layout/library_row.xml b/res/layout/library_row.xml
index 88855ebb..b89f85d2 100644
--- a/res/layout/library_row.xml
+++ b/res/layout/library_row.xml
@@ -20,11 +20,18 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
-
+ android:orientation="horizontal">
+
+
diff --git a/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java b/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java
index a1f63143..0fdbcd26 100644
--- a/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java
+++ b/src/ch/blinkenlights/android/vanilla/LibraryPagerAdapter.java
@@ -43,6 +43,7 @@ import android.util.LruCache;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
+import android.widget.LinearLayout;
import java.util.Arrays;
/**
@@ -53,7 +54,7 @@ public class LibraryPagerAdapter
implements Handler.Callback
, ViewPager.OnPageChangeListener
, View.OnCreateContextMenuListener
- , AdapterView.OnItemClickListener
+ , View.OnClickListener
{
/**
* The number of unique list types. The number of visible lists may be
@@ -162,9 +163,9 @@ public class LibraryPagerAdapter
* song limiters.
*/
private String mHeaderText;
- private TextView mArtistHeader;
- private TextView mAlbumHeader;
- private TextView mSongHeader;
+ private LinearLayout mArtistHeader;
+ private LinearLayout mAlbumHeader;
+ private LinearLayout mSongHeader;
/**
* The current filter text, or null if none.
*/
@@ -307,24 +308,24 @@ public class LibraryPagerAdapter
LibraryActivity activity = mActivity;
LayoutInflater inflater = activity.getLayoutInflater();
LibraryAdapter adapter;
- TextView header = null;
+ LinearLayout header = null;
switch (type) {
case MediaUtils.TYPE_ARTIST:
adapter = mArtistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ARTIST, null);
mArtistAdapter.setExpandable(mSongsPosition != -1 || mAlbumsPosition != -1);
- mArtistHeader = header = (TextView)inflater.inflate(R.layout.library_row, null);
+ mArtistHeader = header = (LinearLayout)inflater.inflate(R.layout.library_row, null);
break;
case MediaUtils.TYPE_ALBUM:
adapter = mAlbumAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ALBUM, mPendingAlbumLimiter);
mAlbumAdapter.setExpandable(mSongsPosition != -1);
mPendingAlbumLimiter = null;
- mAlbumHeader = header = (TextView)inflater.inflate(R.layout.library_row, null);
+ mAlbumHeader = header = (LinearLayout)inflater.inflate(R.layout.library_row, null);
break;
case MediaUtils.TYPE_SONG:
adapter = mSongAdapter = new MediaAdapter(activity, MediaUtils.TYPE_SONG, mPendingSongLimiter);
mPendingSongLimiter = null;
- mSongHeader = header = (TextView)inflater.inflate(R.layout.library_row, null);
+ mSongHeader = header = (LinearLayout)inflater.inflate(R.layout.library_row, null);
break;
case MediaUtils.TYPE_PLAYLIST:
adapter = mPlaylistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_PLAYLIST, null);
@@ -343,10 +344,12 @@ public class LibraryPagerAdapter
view = (ListView)inflater.inflate(R.layout.listview, null);
view.setOnCreateContextMenuListener(this);
- view.setOnItemClickListener(this);
+
view.setTag(type);
if (header != null) {
- header.setText(mHeaderText);
+ TextView headerText = (TextView)header.findViewById(R.id.text);
+ headerText.setText(mHeaderText);
+ headerText.setOnClickListener(this);
header.setTag(type);
view.addHeaderView(header);
}
@@ -466,11 +469,11 @@ public class LibraryPagerAdapter
public void setHeaderText(String text)
{
if (mArtistHeader != null)
- mArtistHeader.setText(text);
+ ((TextView)mArtistHeader.findViewById(R.id.text)).setText(text);
if (mAlbumHeader != null)
- mAlbumHeader.setText(text);
+ ((TextView)mAlbumHeader.findViewById(R.id.text)).setText(text);
if (mSongHeader != null)
- mSongHeader.setText(text);
+ ((TextView)mSongHeader.findViewById(R.id.text)).setText(text);
mHeaderText = text;
}
@@ -836,13 +839,12 @@ public class LibraryPagerAdapter
}
@Override
- public void onItemClick(AdapterView> list, View view, int position, long id)
- {
- Intent intent = id == -1 ? createHeaderIntent(view) : mCurrentAdapter.createData(view);
+ public void onClick(View view) {
+ view = (View)view.getParent(); // get view of linear layout, not the click consumer
+ Intent intent = createHeaderIntent(view);
mActivity.onItemClicked(intent);
}
-
/**
* LRU implementation for filebrowser position cache
*/
diff --git a/src/ch/blinkenlights/android/vanilla/MediaAdapter.java b/src/ch/blinkenlights/android/vanilla/MediaAdapter.java
index aa59af31..c3d846cb 100644
--- a/src/ch/blinkenlights/android/vanilla/MediaAdapter.java
+++ b/src/ch/blinkenlights/android/vanilla/MediaAdapter.java
@@ -454,15 +454,11 @@ public class MediaAdapter
holder = new ViewHolder();
view.setTag(holder);
+ holder.text = (TextView)view.findViewById(R.id.text);
if (mExpandable) {
- holder.text = (TextView)view.findViewById(R.id.text);
holder.arrow = (ImageView)view.findViewById(R.id.arrow);
holder.arrow.setOnClickListener(this);
- } else {
- holder.text = (TextView)view;
- view.setLongClickable(true);
}
-
holder.text.setOnClickListener(this);
} else {
holder = (ViewHolder)view.getTag();
@@ -565,8 +561,7 @@ public class MediaAdapter
public void onClick(View view)
{
int id = view.getId();
- if (mExpandable)
- view = (View)view.getParent();
+ view = (View)view.getParent(); // get view of linear layout, not the click consumer
Intent intent = createData(view);
if (id == R.id.arrow) {
mActivity.onItemExpanded(intent);