diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java b/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java index 7a2bd5df..b80074b6 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java @@ -46,7 +46,9 @@ import org.moire.ultrasonic.util.EntryByDiscAndTrackComparator; import org.moire.ultrasonic.util.Pair; import org.moire.ultrasonic.util.TabActivityBackgroundTask; import org.moire.ultrasonic.util.Util; +import org.moire.ultrasonic.view.AlbumView; import org.moire.ultrasonic.view.EntryAdapter; +import org.moire.ultrasonic.view.SongView; import java.util.ArrayList; import java.util.Collection; @@ -137,6 +139,22 @@ public class SelectAlbumActivity extends SubsonicTabActivity } }); + albumListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){ + + @Override + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof AlbumView) { + AlbumView albumView = (AlbumView) view; + albumView.maximizeOrMinimize(); + } + if (view instanceof SongView) { + SongView songView = (SongView) view; + songView.maximizeOrMinimize(); + } + return true; + } + }); + selectButton = (ImageView) findViewById(R.id.select_album_select); playNowButton = (ImageView) findViewById(R.id.select_album_play_now); playNextButton = (ImageView) findViewById(R.id.select_album_play_next); diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/view/AlbumView.java b/ultrasonic/src/main/java/org/moire/ultrasonic/view/AlbumView.java index 6d5e85a0..8ae6785f 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/view/AlbumView.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/view/AlbumView.java @@ -49,6 +49,7 @@ public class AlbumView extends UpdateView private MusicDirectory.Entry entry; private EntryAdapter.AlbumViewHolder viewHolder; private ImageLoader imageLoader; + private boolean maximized = false; public AlbumView(Context context, ImageLoader imageLoader) { @@ -94,6 +95,20 @@ public class AlbumView extends UpdateView return this.entry; } + public void maximizeOrMinimize() { + if (maximized) { + maximized = false; + } else { + maximized = true; + } + if (this.viewHolder.title != null) { + this.viewHolder.title.setSingleLine(!maximized); + } + if (this.viewHolder.artist != null) { + this.viewHolder.artist.setSingleLine(!maximized); + } + } + public void setAlbum(final MusicDirectory.Entry album) { viewHolder.cover_art.setTag(album); diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java b/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java index 83ba491f..49117a81 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/view/SongView.java @@ -71,6 +71,7 @@ public class SongView extends UpdateView implements Checkable private DownloadFile downloadFile; private boolean playing; private EntryAdapter.SongViewHolder viewHolder; + private boolean maximized = false; public SongView(Context context) { @@ -427,6 +428,20 @@ public class SongView extends UpdateView implements Checkable viewHolder.check.toggle(); } + public void maximizeOrMinimize() { + if (maximized) { + maximized = false; + } else { + maximized = true; + } + if (this.viewHolder.title != null) { + this.viewHolder.title.setSingleLine(!maximized); + } + if (this.viewHolder.artist != null) { + this.viewHolder.artist.setSingleLine(!maximized); + } + } + public enum ImageType { none,