Album song multi select
This commit is contained in:
parent
c06c2fd86d
commit
9d6ece0f31
3 changed files with 106 additions and 24 deletions
|
|
@ -16,12 +16,14 @@ import android.view.View;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.AlbumSongAdapter;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.interfaces.PaletteColorHolder;
|
||||
import com.kabouzeid.gramophone.loader.AlbumLoader;
|
||||
import com.kabouzeid.gramophone.loader.AlbumSongLoader;
|
||||
|
|
@ -51,7 +53,7 @@ import java.util.ArrayList;
|
|||
* <p/>
|
||||
* Should be kinda stable ONLY AS IT IS!!!
|
||||
*/
|
||||
public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorHolder {
|
||||
public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorHolder, CabHolder {
|
||||
|
||||
public static final String TAG = AlbumDetailActivity.class.getSimpleName();
|
||||
private static final int TAG_EDITOR_REQUEST = 2001;
|
||||
|
|
@ -63,10 +65,12 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
|
|||
private View songsBackgroundView;
|
||||
private TextView albumTitleView;
|
||||
private Toolbar toolbar;
|
||||
private MaterialCab cab;
|
||||
private int headerOffset;
|
||||
private int titleViewHeight;
|
||||
private int albumArtViewHeight;
|
||||
private int toolbarColor;
|
||||
private float toolbarAlpha;
|
||||
private int bottomOffset;
|
||||
|
||||
private final SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
|
|
@ -83,9 +87,9 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
|
|||
ViewHelper.setTranslationY(songsBackgroundView, Math.max(0, -scrollY + albumArtViewHeight));
|
||||
|
||||
// Change alpha of overlay
|
||||
float alpha = Math.max(0, Math.min(1, (float) scrollY / flexibleRange));
|
||||
ViewUtil.setBackgroundAlpha(toolbar, alpha, toolbarColor);
|
||||
ViewUtil.setBackgroundAlpha(statusBar, alpha, toolbarColor);
|
||||
toolbarAlpha = Math.max(0, Math.min(1, (float) scrollY / flexibleRange));
|
||||
ViewUtil.setBackgroundAlpha(toolbar, toolbarAlpha, toolbarColor);
|
||||
ViewUtil.setBackgroundAlpha(statusBar, cab != null && cab.isActive() ? 1 : toolbarAlpha, toolbarColor);
|
||||
|
||||
// Translate name text
|
||||
int maxTitleTranslationY = albumArtViewHeight;
|
||||
|
|
@ -278,7 +282,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
|
|||
|
||||
private void setUpSongsAdapter() {
|
||||
final ArrayList<Song> songs = AlbumSongLoader.getAlbumSongList(this, album.id);
|
||||
final AlbumSongAdapter albumSongAdapter = new AlbumSongAdapter(this, songs);
|
||||
final AlbumSongAdapter albumSongAdapter = new AlbumSongAdapter(this, songs, this);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
recyclerView.setAdapter(albumSongAdapter);
|
||||
}
|
||||
|
|
@ -358,4 +362,31 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
|
|||
super.onDestroy();
|
||||
App.bus.unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialCab openCab(int menuRes, final MaterialCab.Callback callback) {
|
||||
if (cab != null && cab.isActive()) cab.finish();
|
||||
cab = new MaterialCab(this, R.id.cab_stub)
|
||||
.setMenu(menuRes)
|
||||
.setBackgroundColor(getPaletteColor())
|
||||
.start(new MaterialCab.Callback() {
|
||||
@Override
|
||||
public boolean onCabCreated(MaterialCab materialCab, Menu menu) {
|
||||
ViewUtil.setBackgroundAlpha(statusBar, 1, toolbarColor);
|
||||
return callback.onCabCreated(materialCab, menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCabItemClicked(MenuItem menuItem) {
|
||||
return callback.onCabItemClicked(menuItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCabFinished(MaterialCab materialCab) {
|
||||
ViewUtil.setBackgroundAlpha(statusBar, toolbarAlpha, toolbarColor);
|
||||
return callback.onCabFinished(materialCab);
|
||||
}
|
||||
});
|
||||
return cab;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue